我們知道python浮點數是64bit。我參加考試:Python:什麼float(2 ** 53 + 3)將是
float(2**53) is 9007199254740992.0,
,它是確定
float(2**53+1) is also 9007199254740992.0,
,它是確定的,因爲最後1不能在64位二進制來呈現。
float(2**53+3) is equal to float(2**53+2),
但
float(2**53+3) is **9007199254740996.0**
結果如何在Python的浮點數的工作?
'double'在C中工作的方式相同。 – dan04
在我的系統中,float(2 * 53 + 2)== 108.0'和float(2 * 53 + 3)== 109.0'。我懷疑這種溢出是未定義的行爲,你不應該依賴它。 –
[每個計算機科學家應該知道的關於浮點算術](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.6768) – devnull