Python代码未按指定数量递增

时间:2019-06-10 20:19:10

标签: python floating-point increment

长话短说,我正在尝试绘制一些三角图,但是我将值增加0.1以得到精确的转折点,但是当增加时,它会增加0.100000000006或类似的值,所以我'无法检查它是否等于另一个值

我在另一个文件上进行了测试,以检查问题是否是由于某些正弦转换引起的,以防出现内存泄漏之类的问题(我不确定),而另一个文件中存在相同的问题只是一个for循环。

import math
xNum = 0
for x in range(180):
    print(xNum)
    xNum = 0.1 + xNum

当打印xNum时,我得到的值如0.40000000006,我不确定为什么它没有将xnum递增0.1。我使用xNum + = 0.1,但输出似乎没有差异

1 个答案:

答案 0 :(得分:2)

您可以在official documentation中了解有关浮点问题。

作为代码的快速修复,您可以使用标准库中的decimal模块:

from decimal import Decimal

xNum = 0
for x in range(180):
    print(xNum)
    xNum = Decimal('0.1') + xNum

此打印:

0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
..etc.