如何在JavaScript中將值轉換為安全整數?


如果一個整數可以精確地表示為IEEE-754雙精度數,則稱其為安全整數。安全整數的範圍是-(2^53 - 1) 到 (2^53 - 1)。所有這些數字都被認為是安全整數,因為它允許在數學整數及其在JavaScript中的表示之間進行一對一的對映。



語法

使用以下語法檢查安全整數:

Number.isSafeInteger(testValue)

這裡testValue 是要檢查的數字,判斷其是否為安全整數。

如果testValue是安全整數,則返回true;否則返回false。

示例

檢查數字是否為安全整數

我們可以使用isSafeInteger()函式來檢查一個數字是否為安全整數,如下例所示。

<html>
<body>
   <p id="first"> </p>
   <p id="second"> </p>
   <p id="third"> </p>
   <script>
      //var number= 3;
      let result1=Number.isSafeInteger(3);
      let result2=Number.isSafeInteger(3.2);
      let result3=Number.isSafeInteger(Math.pow(2, 53));

      document.getElementById("first").innerHTML = result1;
      document.getElementById("second").innerHTML = result2;
      document.getElementById("third").innerHTML = result3;
   </script>
</body>
</html>

在輸出中,我們可以看到數字3的結果為true,數字3.2和2^53的結果為false。

注意 − Number.isSafeInteger()函式是ECMAScript6 (ES6)的功能,因此除了Internet Explorer 11或更早版本之外,所有現代瀏覽器都支援它。

演算法(將數字轉換為安全整數)

要將數字轉換為安全整數,我們接收任何非安全整數作為輸入,並將其轉換為安全數字。

  • 步驟1 − 將輸入的非安全整數儲存到名為“number”的變數中。

  • 步驟2 − 查詢該數字的最大安全整數。要查詢最大安全整數,我們使用MAX_SAFE_INTEGER函式,並將其儲存到名為“max”的變數中。

  • 步驟3 − 查詢上述計算出的最大安全整數max的最小安全整數。要查詢最小安全整數,我們使用MIN_SAFE_INTEGER函式,並將其儲存到名為“min”的變數中。

  • 步驟4 − 對值min進行四捨五入,並將其儲存到名為“safeInt”的變數中。

以下是上述步驟的程式碼片段:

const number = prompt('Please enter any unsafe integer:');
var max = Math.min(number, Number.MAX_SAFE_INTEGER);
var min = Math.max(max, Number.MIN_SAFE_INTEGER);
const safeInt = Math.round(min);

示例2

我們可以使用以下示例將數字轉換為安全整數:

<!DOCTYPE html>
<html>
<body>
   <h3> Convert a Number to a Safe Integer </h3>
   <p class="1"> Click the button below to take an integer as input and convert it to a safe integer.</p>
   <button onclick="check()">click me</button>
   <p id="2"></p>
   <script>
      function check(){
         const number = prompt('Please enter any unsafe integer:');
         var max = Math.min(number,Number.MAX_SAFE_INTEGER);
         var min = Math.max(max,Number.MIN_SAFE_INTEGER);
         const safeInt = Math.round(min);
         document.getElementById("2").innerHTML = number + " => " + safeInt;
      }
   </script>
</body>
</html>

如輸出視窗所示,單擊“點選我”按鈕後,視窗將提示您輸入任何非安全整數。

在提示框中輸入任何非安全整數後,您將看到它被轉換為安全整數,例如,我們將非安全數字6.2作為示例。

更新於:2022年7月21日

420 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告