java.util.IllegalFormatConversionException

时间:2014-03-26 17:25:19

标签: java

我的代码中有一点问题。我不知道我应该如何修复它,我尝试了一些东西,但我认为,我没有收到这里的消息,即使我怀疑这个问题是某种基本的,容易解决的问题。例外情况低于代码。

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)

1 个答案:

答案 0 :(得分:20)

%d在Java中使用整数。请在%f

中使用printf()

另一个有用的信息。如果您使用%.02f,那么它将在点.

之后仅打印两个小数点值