我正在尝试使用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
这似乎无法通过一个解决formatter。我建议您使用"0.00"format并替换".00"为空字符串。
formatter
"0.00"
".00"
public static String myFormat(double number) { DecimalFormat df = new DecimalFormat("0.00"); return df.format(number).replaceAll("\\.00$", ""); }