JavaScript可存储的最大数值是多少?基于64位存储机制的技术问询
JavaScript 可存储的最大数值说明
你提到的JavaScript采用固定位数存储数值的说法是正确的,JS的Number类型统一采用*64位双精度浮点数(IEEE 754标准)*存储所有数值。
JavaScript使用固定数量的bits,共64位,来存储单个数值。64位bits能生成的模式数量有限,这意味着可表示的不同数值的数量是有限的。使用N位十进制数可以表示10N个数值,同理,64位二进制数可以表示264个不同数值,约为18京(即18后面跟18个零)。
不过需要注意,64位的存储位会被拆分为三部分使用,并非全部用来存储数值本身:1位符号位标记正负、11位存储指数、剩下52位存储有效数字(尾数),所以实际可表示的数值范围和精度有特定限制,常见的边界值如下:
- 可表示的最大正数值:
Number.MAX_VALUE,近似值为1.7976931348623157e+308,大于该值的数值会被判定为正无穷Infinity - 可精确表示的最大整数(最大安全整数):
Number.MAX_SAFE_INTEGER,值为2^53 - 1 = 9007199254740991,超过该值的整数无法保证存储和计算的精度
如果需要处理超出安全整数范围的大整数,可以使用JS原生提供的BigInt类型。
内容的提问来源于stack exchange,提问作者Jeffrrey Dominguez
相关产品推荐
相关产品推荐

