Number.MAX_SAFE_INTEGER
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Number.MAX_SAFE_INTEGER
静态数据属性表示在 JavaScript 中最大的安全整数(253 – 1)。
对于更大的整数,请考虑使用 BigInt
。
尝试一下
值
9007199254740991
(9,007,199,254,740,991,或者约 9 千万亿)。
Number.MAX_SAFE_INTEGER 的属性特性 | |
---|---|
可写 | 否 |
可枚举 | 否 |
可配置 | 否 |
描述
双精度浮点格式只有 52 位用于表示尾数,因此它只能安全地表示介于 -(253 – 1) 和 253 – 1 之间的整数。本文中,“安全”指的是能够精确表示整数并正确比较它们。例如,Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2
的结果将为真,这在数学上是不正确的。有关更多信息,请参阅 Number.isSafeInteger()
。
由于 MAX_SAFE_INTEGER
是 Number
的静态属性,你应该始终将其使用为 Number.MAX_SAFE_INTEGER
,而不是一个数字值的属性。
示例
MAX_SAFE_INTEGER 的返回值
js
Number.MAX_SAFE_INTEGER; // 9007199254740991
MAX_SAFE_INTEGER 和 EPSILON 之间的关系
Number.EPSILON
是 2-52,而 MAX_SAFE_INTEGER
是 253 – 1,它们都源自尾数的宽度,即 53 位(最高位始终为 1)。将它们相乘会得到一个非常接近但不等于 2 的值。
js
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
规范
Specification |
---|
ECMAScript Language Specification # sec-number.max_safe_integer |
浏览器兼容性
BCD tables only load in the browser