假设x为有理数,y=1/x。
1)当x=1,y=1
python计算结果:1.0
2)当x=0.1,y=10
python计算结果:10.0
3)当x=0.001,y=1000
python计算结果:1000.0
4)当x=0.00001,y=100000
python计算结果:9999.99999999999
这里似乎产生了微妙的精度损失?
5) 当x=0.0000001,y=10000000
python计算结果:10000000.0
第1、2、3、5种情况精度都没有丝毫损失,但是第4种的精度损失非常小,几乎忽略不计。但是如果经过以下操作问题就出现:
y = int(1/x) 或 1//x
可以看出,此时y=99999与预期的100000相差1。
这种情况下,浮点数转换为整数进行运算,结果就会与预期不一致。