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

更新於:2022年12月6日

220 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.