如何在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作為示例。