console.log(0.1 + 0.2 == 0.3) // false console.log(0.2 + 0.2 == 0.4) console.log(0.1 + 0.3 == 0.4) console.log(0.13 + 0.2 == 0.33) console.log(0.3 + 0.4 == 0.7) console.log(1.1 + 0.2 == 1.3)
以上代碼為什么只有第一條輸出false,而其他都是true ? 我知道 0.1 + 0.2 = 0.30000000000000004 ,但我想知道為什么。
JS masalah penambahan perpuluhan? -Tapak web PHP Cina Q&A-JS masalah penambahan perpuluhan? -Soal Jawab laman web PHP Cina
Sila tonton dan pelajari.
假設十進制數字為整數10,在計算機中表示方式為 : 1010,二進制轉換十進制的方法為:
1?*?2^3?+?0?*?2^2?+?1*?2^1?+?0*?2^0?=?10
即為:
8?+?0?+?2?+?0?=?10
那么小數的表示方法,假設10進制數為0.5,在計算機中表示為0.1,因為計算機只有0和1這兩位,而換算方法為:
1?*?2^-1?=?0.5
同理可見計算機能表示的浮點數有哪些 :
0.5?=?1?*?2^-1 0.75?=?1?*?2^-1?+1?*?2^-2 0.25?=?0?*?2^-1?+1?*?2^-2 0.875?=?1?*?2^-1?+1?*?2^-2?+?1?*?2^-3 0.9375?=?1?*?2^-1?+1?*?2^-2?+?1?*?2^-3?+?1?*?2^-4
同理可見,0.2在計算機中表示為 :
0.00110011000110...
后續(xù)位數你可以自己算,所以在計算機中0.2的表示方法只是一個無線接近于0.2的小數,但永遠無法精確的表示出0.2,所以0.2 + 0.1 ≈ 0.3,而永遠不會等于0.3