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.

的更多信息

我不明白为什么人们仍然使用这个 DecimalFormat 东西。要实现您想要的效果,只需将 System.out.printf 与以下模式一起使用。

System.out.printf("%,.2f%n", value);

如果值为 0,它将始终打印为 0.000,00,具体取决于语言环境。