由于计算机能够表示的浮点数精度有限,因此计算机在将浮点数表示为二进制时,会存在精度缺失问题,例如在本机上用python测试0.1+0.1+0.1-0.3的结果:
可以看到结果并不为0!
原因是什么呢?
0.1的二进制表示为0.0001100110011001
将0.1+0.1+0.1三个二进制数相加,结果就超过额0.3,因为计算机所能表示的精度有限而导致出现这种情况!
那么在用浮点数和0比较时就应该注意了,下面以python为例:
#错误方式
a = float(input("Please enter a float:"))
b = 3*a - 0.3
if b == 0: