长话短说,我正在尝试绘制一些三角图,但是我将值增加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,但输出似乎没有差异
答案 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.