Python while循环没有预期的循环次数
我有4个嵌套的循环,它们看起来都像下面的一个Python while循环没有预期的循环次数,python,loops,while-loop,Python,Loops,While Loop,我有4个嵌套的循环,它们看起来都像下面的一个 x = 0.0 while x <= 1.0: ls_alloc[0] = x x = x + 0.1 x=0.0 而x的问题是0.1不能精确地表示为浮点值。取而代之的是一个略大于0.1的数字: In [2]: '%.20f' % 0.1 Out[2]: '0.10000000000000000555' 这会减少您可能期望的循环迭代次数。而且,x永远不会精确命中1.0(即使后者可以精确表示) 值得注意的是,这种行为通
x = 0.0
while x <= 1.0:
ls_alloc[0] = x
x = x + 0.1
x=0.0
而x的问题是0.1
不能精确地表示为浮点值。取而代之的是一个略大于0.1的数字:
In [2]: '%.20f' % 0.1
Out[2]: '0.10000000000000000555'
这会减少您可能期望的循环迭代次数。而且,x
永远不会精确命中1.0
(即使后者可以精确表示)
值得注意的是,这种行为通常是浮点算术的一种属性,而不是Python特有的。是否混淆了变量名?one
应该是x
吗?是的,很抱歉之前都称为one,但我在问题中更改了它以避免混淆。重要的是要指出这不是Python问题,而是浮点问题。