JavaScript Number類型均采用64位浮點(diǎn)數(shù)集币,因此實(shí)際上是沒有整數(shù)的概念的,涉及到小數(shù)的部分比較都要小心。
0.1+0.2===0.3
//false
遵從IEEE754標(biāo)準(zhǔn)崔慧,參見Wiki。
64位浮點(diǎn)數(shù)采用:
- 1位符號(hào)位sign
- 11位階碼e
- 52位有效數(shù)字b51....b0
具體表達(dá)式表示為:
因此穴墅,可以當(dāng)整數(shù)的有效數(shù)字在絕對(duì)值小于2的53次方的整數(shù)都可以被精確表示惶室,請(qǐng)注意:這并不代表雙精度浮點(diǎn)數(shù)可表示的最大范圍。
我們可以根據(jù)其表達(dá)式推算出:
16進(jìn)制下:
7ff0 0000 0000 0000 = Infinity
fff0 0000 0000 0000 = ?Infinity
根據(jù)查閱(直接輸入Math.MAX_VALUE)玄货,Infinity值近似等于1.7976931348623157 × 10的308次方皇钞。