java.util.IllegalFormatConversionException 与 java.util.Formatter

标签 java

我在使用格式说明符时遇到问题。这是否意味着我正在使用 %d?

public static void main(String[] args) 
{ 
   double y, x;

    for (x = 1.0; x <= 7.0; x+=0.1)
    {
        y = x * x - 5 * x + 6;
        System.out.printf("x = "+x+", y = %d", y);
        System.out.printf("\n");
    }

}

这就是代码,这是输出:

Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
x = 1.0, y =    at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4045)
    at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2748)
    at java.util.Formatter$FormatSpecifier.print(Formatter.java:2702)
    at java.util.Formatter.format(Formatter.java:2488)
    at java.io.PrintStream.format(PrintStream.java:970)
    at java.io.PrintStream.printf(PrintStream.java:871)
    at wilson_hw03a.java.Wilson_hw03aJava.main(Wilson_hw03aJava.java:15)

Java Result: 1

我究竟做错了什么?更好的是,错误是什么?

最佳答案

我刚刚注意到另一个问题。 double 的格式说明符是 %f 而不是 %d。它还可能导致 FormatSpecifier 错误。

public static void main(String[] args) {
    double y, x;
    for (x = 1.0; x <= 7.0; x += 0.1) {
        y = x * x - 5 * x + 6;
        System.out.printf("x = %f, y = %f", x, y); // or
        System.out.printf("x = %f, y = %f%n", x, y);
    }
}

关于java.util.IllegalFormatConversionException 与 java.util.Formatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32939650/

相关文章:

java - 调用在另一个类中创建的对象的方法

java - 在java中使用removeCharAt()的困难

java - 我应该使用什么 xml 解析器?

java - 如何在两组不同的数字之间创建随机值

java - JAVA 中将文件或 byte[] 转换为 BLOB

Java流乘法并返回乘法之和

java - 如何使用 gradle 排除传递依赖并用另一个替代

java - 在键盘存在时隐藏 ‘Bottom Navigation Bar’ - Android

java - 在 EditText 的日期中添加斜线

java - 出现错误,但我不确定它们的含义