尝试打印带小数点后2位的值时收到错误。
我已经宣布了一个费率,并且我正在尝试按以下方式运行printf:
double rate = 2.50;
System.out.printf("Rate: %73.2d \n \n", rate);
但是我收到此消息:
旅行的部门:
3
线程" main"中的例外情况java.util.IllegalFormatPrecisionException:2
at java.util.Formatter $ FormatSpecifier.checkInteger(Unknown Source)
at java.util.Formatter $ FormatSpecifier。(Unknown Source)
在java.util.Formatter.parse(未知来源)
at java.util.Formatter.format(Unknown Source)
在java.io.PrintStream.format(未知来源)
在java.io.PrintStream.printf(未知来源)
在example.main(example.java:74)
我也尝试过类似下面的浮动:
float rate = 2.50;
System.out.printf("Rate: %73.2f \n \n", rate);
非常感谢任何协助。
答案 0 :(得分:1)
使用应该有用的%73.2f
。这将打印您的数字2位小数。 d
表示不是double的整数。
答案 1 :(得分:0)
感谢您的协助,我按照建议将其更改为.2f,并删除了双\ n。我去了: System.out.printf(“Rate:%73.2f \ n”,rate);
答案 2 :(得分:0)
使用String Class进行格式化,使用println方法进行打印。
float rate=2.50f;
System.out.println(String.format("%73.2f", rate));
注意你写的一件事
float rate=2.50;//Compile Time Error
这一行生成编译时错误,因为2.50是double值,你不能存储在float中,所以也要纠正你的代码。
答案 3 :(得分:-1)
double rate = 2.50;
DecimalFormat df = new DecimalFormat("#.00");
System.out.printf("Rate: %s \n \n", df.format(rate));