私は次のPythonスクリプトを持っています:
x = 300000000.0
while (x < x + x):
x = x + x
print "exec: " + str(x)
print "terminated" + str(x)
この一見無限ループは、xが浮動小数点数の場合、非常に迅速に終了します。しかし、代わりにxを300000000に変更すると、無限ループに入ります(私のテストでは1分より長く実行されます)。
これは、メモリで表現できる浮動小数点数の精度を使い果たしているという事実に関係していると思います。誰かがこれがなぜであるかについてより詳細な説明を提供できますか?