我有4个嵌套的while循环,它们看起来都类似于下面的那个
x = 0.0
while x <= 1.0:
ls_alloc[0] = x
x = x + 0.1
我想要它做的是每次添加0.1到x,而它是<= 1.0
我遇到的问题是它实际上从未进入while循环x = 1.0
我正在使用python 2.7
答案 0 :(得分:8)
问题在于0.1
无法完全表示为float
。你得到的是一个略大于0.1
的数字:
In [2]: '%.20f' % 0.1
Out[2]: '0.10000000000000000555'
这会导致您可能期望的循环迭代次数减少。此外,x
永远不会精确地1.0
(即使后者可以完全表示)。
值得注意的是,这种行为通常是浮点运算的一个属性,并不是特定于Python的。