Ответ 1
%d
представляет собой целое число; вы хотите использовать %f
для двойника. См. синтаксис строки форматирования в Javadoc
Я новичок в программировании, поэтому заранее прошу прощения. Я запускаю программу, и у меня проблема с методом System.out.printf
в Java. Я знаю, что все остальное в программе работает правильно (протестировано). Однако это не работает.
Ошибка:
Исключение в потоке "main" java.util.IllegalFormatConversionException: d!= java.lang.Double
в java.util.Formatter $FormatSpecifier.failConversion(Неизвестный источник)
в java.util.Formatter $FormatSpecifier.printInteger(Неизвестный источник)
в java.util.Formatter $FormatSpecifier.print(Неизвестный источник)
в java.util.Formatter.format(Неизвестный источник)
в java.io.PrintStream.format(Неизвестный источник)
в java.io.PrintStream.printf(Неизвестный источник)
в 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]);
}
}
}
Не уверен, почему он не работает.
%d
представляет собой целое число; вы хотите использовать %f
для двойника. См. синтаксис строки форматирования в Javadoc