我有以下Python腳本:力竭浮點精度
x = 300000000.0
while (x < x + x):
x = x + x
print "exec: " + str(x)
print "terminated" + str(x)
這個看似無限循環,終止很快,如果x是一個浮點數。但是,如果我將x改爲300000000,它會進入無限循環(在我的測試中運行時間超過一分鐘)。
我認爲這是因爲它耗盡了可以在內存中表示的浮點數的精度。有人可以提供更詳細的解釋,爲什麼這是?
投票作爲正確的答案,因爲這實際上是爲什麼它解釋它不終止的整數情況下,其他答案只是解釋了它顯而易見,它終止時x = inf如果x是一個浮點數 –