浮点数的表示是不精确的,float 和 double 都不能保证可以把所有实数都准确的保存在计算机中。
由于浮点数的表示是不精确的,所以不能直接比较两个数是否完全相等。一般都是在允许的某个范围内认为某个个浮点数相等,如有两个浮点数a、b,允许的误差范围为 1e-6,则 abs(a-b) <= 1e-6,即可认为 a 和 b 相等。
还有一种方法就是扩大再取整,比如 a=5.23、b=5.23,直接比较 a==b 有可能为 false,但是 a 和 b 都扩大一百倍,然后强制转换为 int 类型,再用 == ...
分类:
其他好文 时间:
2015-07-25 18:36:44
阅读次数:
180