小编典典

使用DecimalFormat格式化数字

java

我正在尝试使用DecimalFormat格式化价格,但这不适用于所有版本。

DecimalFormat df = new DecimalFormat("0.##")
df.format(7.8)
df.format(85.0)

版画

7.80

85

但是“ 7.79999”的格式设置为“ 7.8”,而不是“ 7.80”。我尝试过这种方式

DecimalFormat df = new DecimalFormat("0.00")

强制两个dp,但是“ 85.0”的格式设置为“ 85.00”而不是“ 85”!

有没有一种方法可以捕获所有变化,以便将价格打印为#,##或#。##?例如:

5、55、5.55、5.50、500、500.40


阅读 250

收藏
2020-11-16

共1个答案

小编典典

这似乎无法通过一个解决formatter。我建议您使用"0.00"format并替换".00"为空字符串。

public static String myFormat(double number) {
  DecimalFormat df = new DecimalFormat("0.00");
  return df.format(number).replaceAll("\\.00$", "");
}
2020-11-16