IllegalFormatConversionException

时间:2017-06-11 21:16:30

标签: java

我在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)

1 个答案:

答案 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);