Java 双格式即使为零也显示 2 个小数点
Java Double Format to show 2 decimal points even when zero
我想在屏幕上打印出带 2 个小数点的双精度值。到目前为止,这条线运行完美:
System.out.println(new DecimalFormat("$#,###.##").format(value));
对于像这样的输入:
double value = 82348238482834.23482348;
打印出来:
,348,238,482,834.23
这正是我想要的。但是,如果我有输入 0
,我希望它打印出 [=17=].00
。使用上面的格式行,它会打印出 [=18=]
。我尝试将上面的代码更改为:
double value = 0;
System.out.println(new DecimalFormat("$#,###.00").format(value));
但是打印出来$.00
。我可以这样做:
if(value == 0) {
System.out.println("[=15=].00");
}
它可以工作,但是非常难看。还有其他方法可以解决这个问题吗?
使用:
System.out.println(new DecimalFormat("$#,##0.00").format(value));
已更改:
"$#,##0.00"
就像乔恩说的,0表示一个数字所以它包含零,#表示一个数字但是零显示为不存在。
的更多信息
我不明白为什么人们仍然使用这个 DecimalFormat
东西。要实现您想要的效果,只需将 System.out.printf
与以下模式一起使用。
System.out.printf("%,.2f%n", value);
如果值为 0
,它将始终打印为 0.00
或 0,00
,具体取决于语言环境。
我想在屏幕上打印出带 2 个小数点的双精度值。到目前为止,这条线运行完美:
System.out.println(new DecimalFormat("$#,###.##").format(value));
对于像这样的输入:
double value = 82348238482834.23482348;
打印出来:
,348,238,482,834.23
这正是我想要的。但是,如果我有输入 0
,我希望它打印出 [=17=].00
。使用上面的格式行,它会打印出 [=18=]
。我尝试将上面的代码更改为:
double value = 0;
System.out.println(new DecimalFormat("$#,###.00").format(value));
但是打印出来$.00
。我可以这样做:
if(value == 0) {
System.out.println("[=15=].00");
}
它可以工作,但是非常难看。还有其他方法可以解决这个问题吗?
使用:
System.out.println(new DecimalFormat("$#,##0.00").format(value));
已更改:
"$#,##0.00"
就像乔恩说的,0表示一个数字所以它包含零,#表示一个数字但是零显示为不存在。
的更多信息我不明白为什么人们仍然使用这个 DecimalFormat
东西。要实现您想要的效果,只需将 System.out.printf
与以下模式一起使用。
System.out.printf("%,.2f%n", value);
如果值为 0
,它将始终打印为 0.00
或 0,00
,具体取决于语言环境。