Number.isSafeInteger()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Die statische Methode Number.isSafeInteger()
bestimmt, ob der angegebene Wert eine Zahl ist, die ein sicherer Ganzzahlwert ist.
Probieren Sie es aus
function warn(x) {
if (Number.isSafeInteger(x)) {
return "Precision safe.";
}
return "Precision may be lost!";
}
console.log(warn(2 ** 53));
// Expected output: "Precision may be lost!"
console.log(warn(2 ** 53 - 1));
// Expected output: "Precision safe."
Syntax
Number.isSafeInteger(testValue)
Parameter
testValue
-
Der Wert, der darauf getestet wird, ein sicherer Ganzzahlwert zu sein.
Rückgabewert
Der boolesche Wert true
, wenn der gegebene Wert eine Zahl ist, die ein sicherer Ganzzahlwert ist. Andernfalls false
.
Beschreibung
Die sicheren Ganzzahlen bestehen aus allen Ganzzahlen von -(253 - 1) bis 253 - 1, einschließlich (±9.007.199.254.740.991). Ein sicherer Ganzzahlwert ist eine Zahl, die:
- als IEEE-754-Doppelpräzisionszahl genau dargestellt werden kann und
- deren IEEE-754-Darstellung nicht das Ergebnis der Rundung einer anderen Ganzzahl ist, um in die IEEE-754-Darstellung zu passen.
Zum Beispiel ist 253 - 1 ein sicherer Ganzzahlwert: Er kann genau dargestellt werden, und keine andere Ganzzahl wird bei irgendeiner IEEE-754-Rundungsart auf ihn gerundet. Im Gegensatz dazu ist 253 kein sicherer Ganzzahlwert: Er kann in IEEE-754 genau dargestellt werden, aber die Ganzzahl 253 + 1 kann nicht direkt in IEEE-754 dargestellt werden, sondern wird stattdessen unter Rundung auf den nächsten und Rundung auf null auf 253 gerundet.
Um Werte mit vollständiger Präzision zu handhaben, die größer oder kleiner als etwa 9 Billionen sind, ist die Verwendung einer Arbitrary Precision Arithmetic Library erforderlich. Weitere Informationen zu Fließkommadarstellungen von Zahlen finden Sie unter Was jeder Programmierer über Gleitkommaarithmetik wissen muss.
Für größere Ganzzahlen sollten Sie den BigInt
-Typ in Betracht ziehen.
Beispiele
Verwendung von isSafeInteger()
Number.isSafeInteger(3); // true
Number.isSafeInteger(2 ** 53); // false
Number.isSafeInteger(2 ** 53 - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-number.issafeinteger |