浮点数中有一部分数据本身就是近似存储的,有些浮点数,无法精确的用二进制表示,只能近似存储。
所以 使用double参与计算的时候,是会有误差的存在。
如果想精确存储和计算,推荐使用BigDecimal 类型。
计算机对浮点数的进行计算的原理是只保证必要精度内正确即可,例如:double a=0.9+0.2;那么只能保证小数点后1位这个精度是正确的,计算机计算这个加法的结果a的值可能是1.100000001,也可能是1.100000002也可能就是1.1,也就是说计算机计算后并不保证0.1以下各位得到的都是正确的,所以直接用==进行比较是不可行的。
浮点数比较是否相等不可以用==
最新推荐文章于 2022-05-05 20:45:47 发布