为什么在Python解释器中会发生以下情况?
>>> 0.1+0.1+0.1-0.3 5.551115123125783e-17 >>> 0.1+0.1 0.2 >>> 0.2+0.1 0.30000000000000004 >>> 0.3-0.3 0.0 >>> 0.2+0.1 0.30000000000000004 >>>
为什么不0.2 + 0.1 = 0.3呢?
0.2 + 0.1 = 0.3
那是因为.1不能以二进制浮点表示形式精确表示。如果你试试
.1
>>> .1
Python会做出响应,.1因为它只能打印出一定的精度,但是已经存在一个小的舍入错误。也会发生同样的情况.3,但是当您发出
.3
>>> .2 + .1 0.30000000000000004
然后四舍五入误差.2并.1累积。另请注意:
.2
>>> .2 + .1 == .3 False