我这里的代码有点问题。我不知道我应该如何解决它,我尝试了一些东西,但我想,我没有得到这里的消息,即使我怀疑这个问题是某种基本的并且容易解决的问题。异常在代码下方。
package test;
public class CircleExercise {
public static void main(String[] args) {
double[] rKreis = new double[3];
for(int i = 1 ; i <= 3 ; i++){
rKreis[i] = Double.parseDouble("4.9");
System.out.printf("%n%d, Kreis: %nRadius: %d%nUmfang: %d%nFlaeche: %d%n",
i, rKreis[i], Circle.getCircumference(rKreis[i]), Circle.getArea(rKreis[i]));
}
}
}
异常情况如下
1, Kreis:
Radius: Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:3999)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2709)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2661)
at java.util.Formatter.format(Formatter.java:2433)
at java.io.PrintStream.format(PrintStream.java:920)
at java.io.PrintStream.printf(PrintStream.java:821)
at CircleExercise.main(CircleExercise.java:13)
最佳答案
%d
在 Java 中与整数一起使用。使用 %f
而不是在你的printf()
另一个有用的信息。如果你使用 %.02f
那么它将在点 .
之后只打印两个小数点的值。
关于java.util.IllegalFormatConversionException异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22668614/