我剛剛經歷過的錯誤,其中兩個號碼都被比較,我發現以下有趣:double和float值比較
assert 1 == 1;//true
assert 1d == 1;//true
assert 1 == 1f;//true
assert 1d == 1f;//true
assert 1.1 == 1.1;//true
assert 1.1d == 1.1;//true
assert 1.1 == 1.1f;//false
assert 1.1d == 1.1f;//false
我的問題是:爲什麼只有最後兩個語句是假的?
很好的解釋:https://randomascii.wordpress.com/2012/06/26/doubles-are-not-floats-所以不要比較他們/ –
你必須閱讀[每個計算機科學家應該知道什麼關於浮點運算](https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) 。這是這個規範的資源。 –
檢查兩種不同類型值的平等點有什麼意義......沒關係。 – haifzhan