- 我怀疑在
System.out.printf
这里不能正常工作。double
写入0.1时,获取确切值的一种可靠方法是writenew BigDecimal(0.1).toString()
。 - “为什么0.1f + 0.2f == 0.3f返回true?” 几乎是因为您很幸运:将0.1舍入到最接近的浮点表示形式,将0.2舍入到最接近的浮点表示形式,然后将它们相加,就可以得到最接近的可表示浮点数到0.3。通常情况并非如此,这些价值观恰好起作用。

System.out.printf这里不能正常工作。
double写入0.1时,获取确切值的一种可靠方法是write
new BigDecimal(0.1).toString()。