【问题标题】:Java Double Format to show 2 decimal points even when zeroJava双格式即使为零也显示2个小数点
【发布时间】:2016-05-16 15:10:21
【问题描述】:

我想在屏幕上打印带 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");
}

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

【问题讨论】:

  • 嗯,是的,0 always 打印,#有条件地 打印...所以你认为你想要在点?

标签: java double decimal decimalformat


【解决方案1】:

用途:

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

改变:

"$#,##0.00"

就像 Jon 说的,0 表示一个数字,所以它包含零,# 表示一个数字,但零表示不存在。

欲了解更多信息DecimalFormat.

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-26
      • 2014-08-09
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      相关资源
      最近更新 更多