java - 数字格式/打印错误

标签 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)

最佳答案

%.2f 需要一个 float ,而您通过执行此操作将 doubleValues[r] 转换为字符串 doubleValues[r] + ""。试试这个:

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

关于java - 数字格式/打印错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32364882/

相关文章:

java - 如何在 Java 中使用带有 `^` 标志的 printf 使文本居中?

c - 为什么 %d 不能在 printf() 中自动将 float 值转换为 int?

php - 如何在 PHP 中打印出像 $_POST 这样的数组的键?

c - 数组中正值的总和在 c 程序中给出负结果

c - printf 的意外结果

java - 解析 JSON 并从中删除对象会出错

Java 数组通过比较器排序

Java旋转非方形JPanel组件

java - 为什么在 Java 中继承是强耦合的,而组合是松散耦合的?

java - JVM/Android 不信任 StartSSL 的根证书