JS中Number的精确表示范围及取值范围

JavaScript Number类型均采用64位浮点数,因此实际上是没有整数的概念的,涉及到小数的部分比较都要小心。

0.1+0.2===0.3
//false

遵从IEEE754标准,参见Wiki。
64位浮点数采用:

  • 1位符号位sign
  • 11位阶码e
  • 52位有效数字b51....b0
    具体表达式表示为:
    Wiki

    因此,可以当整数的有效数字在绝对值小于2的53次方的整数都可以被精确表示,请注意:这并不代表双精度浮点数可表示的最大范围
    我们可以根据其表达式推算出:
    16进制下:
    7ff0 0000 0000 0000 = Infinity
    fff0 0000 0000 0000 = −Infinity
    根据查阅(直接输入Math.MAX_VALUE),Infinity值近似等于1.7976931348623157 × 10的308次方。

你可能感兴趣的:(JS中Number的精确表示范围及取值范围)