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 July 2015.
Die Number.isSafeInteger()
statische Methode bestimmt, ob der übergebene Wert eine Zahl ist, die ein sicherer Integer ist.
Probieren Sie es aus
function warn(x) {
if (Number.isSafeInteger(x)) {
return "Precision safe.";
}
return "Precision may be lost!";
}
console.log(warn(Math.pow(2, 53)));
// Expected output: "Precision may be lost!"
console.log(warn(Math.pow(2, 53) - 1));
// Expected output: "Precision safe."
Syntax
Number.isSafeInteger(testValue)
Parameter
testValue
-
Der Wert, der darauf getestet wird, ob er ein sicherer Integer ist.
Rückgabewert
Der boolesche Wert true
, wenn der angegebene Wert eine Zahl ist, die ein sicherer Integer ist. Andernfalls false
.
Beschreibung
Die sicheren Integer umfassen alle Ganzzahlen von -(253 - 1) bis 253 - 1, einschließlich (±9.007.199.254.740.991). Ein sicherer Integer ist ein Integer, der:
- exakt als IEEE-754-Doppelpräzisionszahl dargestellt werden kann, und
- dessen IEEE-754-Darstellung nicht das Ergebnis des Rundens einer anderen Ganzzahl ist, um in die IEEE-754-Darstellung zu passen.
Zum Beispiel ist 253 - 1 ein sicherer Integer: Er kann exakt dargestellt werden, und keine andere Ganzzahl wird auf ihn gemäß irgendeinem IEEE-754-Rundungsmodus gerundet. Im Gegensatz dazu ist 253 kein sicherer Integer: Er kann exakt in IEEE-754 dargestellt werden, aber die Ganzzahl 253 + 1 kann nicht direkt in IEEE-754 dargestellt werden, sondern wird stattdessen im Rundungsmodus "auf nächste Zahl runden" oder "auf null runden" auf 253 gerundet.
Um Werte jenseits von ~9 Billiarden mit voller Präzision zu bearbeiten, wird die Verwendung einer Arbitrary Precision Arithmetic Library benötigt. Lesen Sie What Every Programmer Needs to Know about Floating Point Arithmetic für weitere Informationen über die Darstellung von Gleitkommazahlen.
Für größere Ganzzahlen sollten Sie den Typ BigInt
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® 2025 Language Specification # sec-number.issafeinteger |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
isSafeInteger |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support