0

私は4つの入れ子になったwhileループを持っています.それらはすべて以下のものに似ています.

x = 0.0    
while x <= 1.0:
    ls_alloc[0] = x
    x = x + 0.1

私がやりたいのは、x が <= 1.0 である間、毎回 x に 0.1 を追加することです。私が抱えている問題は、実際には while ループに入らないことです。x = 1.0

私はpython 2.7を使用しています

4

1 に答える 1

8

問題は、0.1として正確に表現できないことfloatです。代わりに得られるのは、 よりわずかに大きい数値0.1です。

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

これにより、予想されるループの反復が少なくなります。また、x正確にヒットすることはありません1.0(後者は正確に表現できますが)。

この動作は一般に浮動小数点演算の特性であり、決して Python に固有のものではないことに注意してください。

于 2013-03-21T19:47:07.450 に答える