Проблема с командой System.out.printf в Java - PullRequest
29 голосов
/ 12 сентября 2010

Я новичок в программировании, поэтому заранее прошу прощения. Я запускаю программу и у меня проблема с методом System.out.printf в Java. Я знаю, что все остальное в программе работает правильно (проверено). Однако это не похоже на работу.

Ошибка:

Исключение в потоке "main" java.util.IllegalFormatConversionException: d! = Java.lang.Double
at java.util.Formatter $ FormatSpecifier.failConversion (неизвестный источник)
at java.util.Formatter $ FormatSpecifier.printInteger (неизвестный источник)
at java.util.Formatter $ FormatSpecifier.print (неизвестный источник)
at java.util.Formatter.format (неизвестный источник)
at java.io.PrintStream.format (неизвестный источник)
at java.io.PrintStream.printf (Неизвестный источник)
at Advisor_Score.main (Advisor_Score.java:17)

Мой код:

import java.lang.Math;
public class Advisor_Score {
    public static void main(String[] args){ 
        double l[] = {101,1,1,1};
        double k[] = {102,2,2,4};
        double m[] = {103,5,5,5,5,5,5,5};
        double All_users[][]={l,k,m};
        double sum[]=new double [All_users.length];
        double [] raw_advisor=new double [All_users.length];
        double []advisor_score= new double [All_users.length];
        for (int i=0;i<All_users.length;i++){
                for(int j=1;j<All_users[i].length;j++){
                        sum[i]+=All_users[i][j];
                }
                raw_advisor[i]=((sum[i]-(3*(All_users[i].length-1)))/4);
                advisor_score[i]= 2.5+(2.5*(1-Math.pow(Math.E, -.5*raw_advisor[i])));
                System.out.printf("%d: %d\n", All_users[i][0], advisor_score[i]);
                }       
    }
}

Не совсем уверен, почему это не работает.

1 Ответ

83 голосов
/ 12 сентября 2010

%d представляет целое число;Вы хотите использовать %f для двойного.См. синтаксис строки форматирования в Javadoc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...