Python while循环没有按预期循环多次

时间:2013-03-21 19:43:37

标签: python loops while-loop

我有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

1 个答案:

答案 0 :(得分:8)

问题在于0.1无法完全表示为float。你得到的是一个略大于0.1的数字:

In [2]: '%.20f' % 0.1
Out[2]: '0.10000000000000000555'

这会导致您可能期望的循环迭代次数减少。此外,x永远不会精确地1.0(即使后者可以完全表示)。

值得注意的是,这种行为通常是浮点运算的一个属性,并不是特定于Python的。