线程 "main" java.util.IllegalFormatPrecisionException 中的异常:2,试图修复格式但没有成功 jGRASP
Exception in thread "main" java.util.IllegalFormatPrecisionException: 2, tried to fix the formatting but did not work 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.util.IllegalFormatPrecisionException:2
在 java.base/java.util.Formatter$FormatSpecifier.checkInteger(Formatter.java:3138)
在 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 wedge2:进程的退出代码为 1。
----jGRASP:操作完成。
请帮忙
此外,它编译得很好,但在 main 方法中它不会 运行。
这一行有问题:
System.out.printf("%.2d\n",average);
"%.2d\n" 是 double 格式错误的字符串。将其替换为“%.2f\n”
我正在尝试制作一个计算两个数字的平均值的程序。
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.util.IllegalFormatPrecisionException:2 在 java.base/java.util.Formatter$FormatSpecifier.checkInteger(Formatter.java:3138) 在 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 wedge2:进程的退出代码为 1。 ----jGRASP:操作完成。
请帮忙
此外,它编译得很好,但在 main 方法中它不会 运行。
这一行有问题:
System.out.printf("%.2d\n",average);
"%.2d\n" 是 double 格式错误的字符串。将其替换为“%.2f\n”