如何在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>
广告