数字格式/打印f错误

时间:2015-09-02 23:45:01

标签: java arrays printf double number-formatting

我正在为课程分配工作,由于某些原因我无法弄清楚,当我尝试在double上添加两个小数位时,我得到了“非法格式异常”。我假设它与for循环内部有关,因为当我在print语句中的其他数组上使用数字格式时,我不会收到错误。无论如何,下面是我收到错误的代码和我收到的错误。

感谢您的任何建议!

这是我收到错误的地方。下面是输入的代码,以防万一...

//Output Line 6 (the 4 doubles in reverse order separated by a space)
for(int r = 3; r >= 0; r--) {
    System.out.printf("%.2f", doubleValues[r] + " ");
}

我也尝试使用上面的数字格式并得到相同的错误。
System.out.printf(NF.format(doubleValues [r] +“”));

//Input Line 2 (four doubles)
String inputValuesDbl = BR.readLine();
String values2[] = inputValuesDbl.split("\\s+");
for(int j = 0; j < values2.length; j++) {
    doubleValues[j] = Double.parseDouble(values2[j]);
}

以下是我遇到的错误

Exception in thread "main" java.util.IllegalFormatConversionException: f != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printFloat(Formatter.java:2806)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2753)
at java.util.Formatter.format(Formatter.java:2520)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at CST200_Lab1.main(CST200_Lab1.java:77)

1 个答案:

答案 0 :(得分:4)

%.2f期待浮动,并且您通过执行此操作doubleValues[r]doubleValues[r] + " "转换为字符串。试试这个:

System.out.printf("%.2f ", doubleValues[r]);