沒問題,這個神秘數(shù)字 9007199254740991 就是
來看看為什么這個數(shù)字是最大安全整數(shù),因為如果比這個數(shù)更大,尾數(shù)位已經(jīng)全部是 1 了,只能增大指數(shù)、
探秘 JavaScript 世界的神秘數(shù)字 1.7976931348623157e+308
https://cloud.tencent.com/developer/article/2112444
特殊值 0,Infinity,NaN
剛才提到了,指數(shù)部分全為 1 或者全為 0 會有特殊作用,我們先來看看 3 組特殊值。
0:指數(shù)位全 0,尾數(shù)位也全是0,則表示 ±0
[圖片上傳失敗...(image-3143e5-1712891395995)]
∞:指數(shù)全 1,尾數(shù)全 0,則表示 ±∞,也就是 Number.POSITIVE_INFINITY 和 Number.NEGATIVE_INFINITY
[圖片上傳失敗...(image-281878-1712891395995)]
NaN:指數(shù)全1,尾數(shù)不全為 0,則表示非數(shù)字 NaN
最小精度 Number.EPSILON
我們來看看最后一個神秘數(shù)字 Number.EPSILON,2.220446049250313e-16 是如何來的。
Number.EPSILON === 2**-52 // true
回到那道經(jīng)典題目 “0.1 + 0.2 為什么等于 0.30000000000000004”
可以看到,0.1 和 0.2 轉(zhuǎn)為二進制都是無限循環(huán)小數(shù),轉(zhuǎn)為 64 位浮點數(shù)會有精度損失,我們來轉(zhuǎn)換一下: