Number.isSafeInteger()

基线 广泛可用

此功能已得到良好建立,可在许多设备和浏览器版本中使用。它自以下时间起在所有浏览器中都可用 2015 年 7 月.

Number.isSafeInteger() 静态方法确定提供的值是否为安全整数

试一试

语法

js
Number.isSafeInteger(testValue)

参数

testValue

要测试是否为安全整数的值。

返回值

如果给定值为安全整数,则返回布尔值true。否则返回false

描述

安全整数包括从 -(253 - 1) 到 253 - 1(±9,007,199,254,740,991)的所有整数,包括这两个整数。安全整数是指

  • 可以精确表示为 IEEE-754 双精度数,并且
  • 其 IEEE-754 表示不能是将任何其他整数舍入以适应 IEEE-754 表示的结果。

例如,253 - 1 是一个安全整数:它可以精确表示,并且在任何 IEEE-754 舍入模式下,没有其他整数舍入到它。相反,253不是安全整数:它可以在 IEEE-754 中精确表示,但整数 253 + 1 无法在 IEEE-754 中直接表示,而是在最近舍入和零舍入下舍入到 253

要以完全精度处理大于或小于约 9 千万亿的值,需要使用任意精度算术库。有关数字的浮点数表示的更多信息,请参阅每个程序员都需要了解的浮点数算术知识

对于更大的整数,请考虑使用BigInt 类型。

示例

使用 isSafeInteger()

js
Number.isSafeInteger(3); // true
Number.isSafeInteger(2 ** 53); // false
Number.isSafeInteger(2 ** 53 - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true

规范

规范
ECMAScript 语言规范
# sec-number.issafeinteger

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅