Python浮点数转换整数精度问题

假设x为有理数,y=1/x。
1)当x=1,y=1
python计算结果:1.0


6-1

2)当x=0.1,y=10
python计算结果:10.0


6-2

3)当x=0.001,y=1000
python计算结果:1000.0
6-3

4)当x=0.00001,y=100000

python计算结果:9999.99999999999


6-4

这里似乎产生了微妙的精度损失?
5) 当x=0.0000001,y=10000000
python计算结果:10000000.0
6-5

第1、2、3、5种情况精度都没有丝毫损失,但是第4种的精度损失非常小,几乎忽略不计。但是如果经过以下操作问题就出现:
y = int(1/x) 或 1//x
6-6

可以看出,此时y=99999与预期的100000相差1。
这种情况下,浮点数转换为整数进行运算,结果就会与预期不一致。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。