请查看以下代码:
float num = 72000000.69f;
System.out.println(String.format("%.2f", num));
输出:72000000.00
我失去了精确度。我试过将float转换为BigDecimal然后打印值,但它没有帮助。
任何保持精度的方法?
答案 0 :(得分:5)
浮点数有七位数的精度。你有七位数。
如果您想要更高的精度,请改用双精度。
答案 1 :(得分:2)
BigDecimal num = new BigDecimal("72000000.69");
System.out.println(num);
输出:
72000000.69
答案 2 :(得分:0)
使用 BigDecimal ,浮动类型不会按您的想法存储所有数字
答案 3 :(得分:0)
试试这个测试
System.out.println(72000000.69f == 72000000f);
打印
true
这意味着.69因为漂浮的低精度而被简单地切断,它根本就不存在,你无法以任何方式恢复它。