【发布时间】:2013-07-02 03:04:10
【问题描述】:
在 Java 中,我试图将格式为 "###.##" 的字符串解析为浮点数。字符串应始终保留 2 位小数。
即使字符串的值为123.00,浮点数也应该是123.00,而不是123.0。
这是我目前所拥有的:
System.out.println("string liters of petrol putting in preferences is " + stringLitersOfPetrol);
Float litersOfPetrol = Float.parseFloat(stringLitersOfPetrol);
DecimalFormat df = new DecimalFormat("0.00");
df.setMaximumFractionDigits(2);
litersOfPetrol = Float.parseFloat(df.format(litersOfPetrol));
System.out.println("liters of petrol before putting in editor: " + litersOfPetrol);
打印出来:
string liters of petrol putting in preferences is 010.00
liters of petrol before putting in editor: 10.0
【问题讨论】:
-
不要再解析格式化的字符串了吧?
-
setMinimumFractionDigits听起来更合适。 -
不要解析为浮点数
-
使用 float 和 double 无法做到这一点。 BigDecimal 可以做到这一点。
-
如果不能使用float或double,有没有其他方法可以保留传入字符串的2位小数?
标签: java string floating-point number-formatting