我在Eclipse上做了关于输出格式化的练习,并抛出了异常。我不喜欢'知道如何解决它。我需要打印50到1000,步骤50和它们的平方根的20个数字。整数最多需要4位数,浮点数在小数点前后需要3位数。
//exercise
int j;
for ( j = 50; j <= 1000; j += 50){
double sqrt = Math.sqrt(j);
System.out.printf("START%4dEND", "START%6.3fEND %n", j, sqrt);
}
我收到的异常消息是这样的:
STARTException in thread "main" java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.io.PrintStream.format(Unknown Source)
at java.io.PrintStream.printf(Unknown Source)
at Output.main(Output.java:16)
答案 0 :(得分:0)
在这一行
System.out.printf("START%4dEND", "START%4.3fEND %n", j, sqrt);
printf的第二个参数是一个字符串,但它需要一个整数。尝试结合前两个参数,如下所示:
System.out.printf("START%4dEND START%4.3fEND %n", j, sqrt);