首页 > 解决方案 > 线程“main”中的异常 java.util.IllegalFormatPrecisionException: 2,试图修复格式但没有工作 jGRASP

问题描述

我正在尝试制作一个平均两个数字的程序。

public class Average
{
   private double one, two, average;
   public void setNums(double num1, double num2)
    {
      one=num1;
      two=num2;
    }

    public void average( )
    {
      average = (one + two) / 2;

    }
    public void print()
    {
      System.out.print( one+" + "+two +"has an average of ");
      System.out.printf("%.2d\n",average);
    }
}

这是出现的错误,我认为它是由于格式。

java.base/java.util.Formatter$FormatSpecifier.(Formatter. java:2874) 在 java.base/java.util.Formatter.parse(Formatter.java:2713) 在 java.base/java.util.Formatter.format(Formatter.java:2655) 在 java.base/java.io .PrintStream.format(PrintStream.java:1209) 在 java.base/java.io.PrintStream.printf(PrintStream.java:1105) 在 Average.print(Average.java:26) 在 AverageRunner.main(AverageRunner.java: 17) ----jGRASP楔2:进程退出代码为1。 ----jGRASP:操作完成。

请帮忙。

此外,它编译得很好,但在 main 方法中它不会运行。

标签: javajgrasp

解决方案


问题在于这一行:

  System.out.printf("%.2d\n",average);

"%.2d\n" 是双精度格式错误的字符串。将其替换为“%.2f\n”


推荐阅读