Java Double Format即使为零也显示2个小数点

时间:2016-05-16 15:10:22

标签: java double decimal decimalformat

我想在屏幕上打印出2个小数点的双值。到目前为止,这条线路运行良好:

System.out.println(new DecimalFormat("$#,###.##").format(value));

对于以下输入:

double value = 82348238482834.23482348;

打印出来:

$82,348,238,482,834.23

这正是我想要的。但是,如果我有输入0,我希望它打印出$0.00。使用上面的格式行,它打印出$0。我尝试将上面的代码更改为:

double value = 0;
System.out.println(new DecimalFormat("$#,###.00").format(value));

但那打印出$.00。我可以这样做:

if(value == 0) {
    System.out.println("$0.00");
}

它有效,但它非常难看。有没有其他方法可以解决这个问题?

2 个答案:

答案 0 :(得分:4)

使用:

System.out.println(new DecimalFormat("$#,##0.00").format(value));

更改:

"$#,##0.00"

像Jon说的那样,0代表一个数字,所以它包含零,#表示一个数字,但零表示缺席。

有关DecimalFormat.

的更多信息

答案 1 :(得分:0)

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

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

如果值为0,则会始终打印为0.000,00,具体取决于区域设置。