我想在屏幕上打印出带 2 个小数点的 double 值。到目前为止,这条线运行良好:
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");
}
它有效,但非常丑陋。有没有其他方法可以解决这个问题?
最佳答案
使用:
System.out.println(new DecimalFormat("$#,##0.00").format(value));
更改:
"$#,##0.00"
正如 Jon 所说,0 表示一个数字,因此它包含零,# 表示一个数字,但零显示为不存在。
有关 DecimalFormat. 的更多信息
关于Java Double Format即使为零也显示2个小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37257221/