在我们进行两个double运算时,例如:2..0-1.1 不是想象的输出0.9,而是0.89999999999999999。其主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示分数1/10。这就好像十进制无法精确地表示1/3一样。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类!
两个Double相加,小数点有很多位问题
最新推荐文章于 2024-03-05 15:02:44 发布
本文探讨了使用双精度浮点数进行运算时遇到的精度问题,例如2.0-1.1的结果并非精确的0.9,而是0.89999999999999999。文章解释了这是由于浮点数值在二进制系统中的表示方式导致的,并推荐使用BigDecimal类来避免此类问题。
2257

被折叠的 条评论
为什么被折叠?



