如何在JavaScript中判断一个数字是否为安全整数?
JavaScript 提供了一个 `Number.isSafeInteger()` 方法来检查给定的数字是否为安全整数。如果整数是安全的,则返回 `true`,否则返回 `false`。
JavaScript 对数字有一些限制,任何数字都应该符合 SCNF(标准计算机网络格式)。如果数字违反了规则,则它不是安全整数。
之所以存在此限制,是因为JavaScript 使用 `IEEE 754` 标准中指定的双精度浮点数格式,并且只能安全地表示介于 `−(2^53-1)` 和 `(2^53-1)` 之间的整数。
示例 1
在下面的示例中,我们检查两个数字是否安全。number1 超出了范围,即不安全,输出结果为 `false`。number2 在范围内,即安全,输出结果为 `true`。
<!DOCTYPE html>
<html>
<body>
<script>
const number1 = Number.isSafeInteger(-Math.pow(2,53)-3);
document.write(number1 + "<br>");
const number2 = Number.isSafeInteger(-253);
document.write(number2);
</script>
</body>
</html>
示例 2
在下面的示例中,我们传递一个整数数组,并检查给定元素是否安全。
<!DOCTYPE html>
<html>
<body>
<script>
const arr = [15, 20, 30, 40, -100, -500];
document.write("{");
for (let index = 0; index < arr.length; index++) {
document.write(Number.isSafeInteger(arr[index]) + " ");
}
document.write("}");
</script>
</body>
</html>
示例 3
在下面的示例中,不支持浮点型数据类型。如果将浮点值作为参数传递,则结果为 `false`。`isSafeInteger()` 方法只支持其范围内的整数值,否则返回 `false`。
<html>
<body>
<script>
const number1 = Number.isSafeInteger(-0.567);
document.write(number1 + " ");
const number2 = Number.isSafeInteger(-253.0345);
document.write(" " + number2 + " ");
const number3 = Number.isSafeInteger(5.583);
document.write(" " + number3);
const number4 = Number.isSafeInteger(0 / 0);
document.write(" " + number4 + " ");
const number5 = Number.isSafeInteger(6 - 2);
document.write(" " + number5 + " ");
const number6 = Number.isSafeInteger(0);
document.write(" " + number6);
</script>
</body>
</html>
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP