Soy nuevo en la programación, así que me disculpo de antemano. Estoy ejecutando un programa y estoy teniendo un problema con el método System.out.printf
en Java. Sé que todo lo demás en el programa está funcionando correctamente (lo probé). Sin embargo, esto no parece funcionar.Problema con el comando System.out.printf en Java
El error es:
Excepción en el hilo "principal" java.util.IllegalFormatConversionException: d = java.lang.Double
en java.util.Formatter $ FormatSpecifier.failConversion (origen desconocido)!
en java.util.Formatter $ FormatSpecifier.printInteger (origen desconocido)
en java.util.Formatter $ FormatSpecifier.print (origen desconocido)
en java.util.Formatter.format (origen desconocido)
en java .io.PrintStream.format (Desconocido Fuente)
en java.io.PrintStream.printf (origen desconocido)
en Advisor_Score.main (Advisor_Score.java:17)
Mi código es:
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]);
}
}
}
No entendemos para qué no funciona.
Es bastante inconveniente que '% d' no sea para un doble ...' double' comienza con la letra 'd' después de todo! : D – HyperNeutrino
@JamesSmith, supongo; significa [decimal] (http://stackoverflow.com/q/13409014/309308), a diferencia de '% x' para hexadecimal o'% o' para octal. C también te permitirá usar '% i' como sinónimo" entero "para'% d', pero parece que Java no lo hace –