Python的数学运算结果 不明白呀

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:31:22
>>> 2.0-333
-331.0
>>> 2.00-222
-220.0
>>> 2.01-222
-219.99000000000001
>>> 2.001-222
-219.999
>>> 2.0002-222
-219.99979999999999
>>> 2.00002-222
-219.99997999999999
>>>

谁能告诉我为什么会有这样的结果 怎么会保留那么多位数? 是四舍五入吗?

第1、2、4应该没什么问题吧

其他的主要是在计算机里面,二进制表达小数的先天缺陷,在有限位数时,表达十进制小数位容易出现偏差。例如:
二进制 十进制
0.1 0.5
0.01 0.25
0.001 0.125
0.0001 0.0625
.......

这种偏差是难免的

2.0002因为有了小数,所以python默认为浮点类型,所以会有小数

1、浮点的问题
2、python以二进制进行计算,所以会出现多位小数