Signatur
Beschreibung
Die statische Methode Number.isSafeInteger() ermittelt, ob der übergebene Wert eine Zahl ist, die ein safe integer ist.
Die safe integers umfassen alle ganzen Zahlen von -(253 - 1) bis 253 - 1, jeweils einschließlich (±9.007.199.254.740.991). Ein safe integer ist eine ganze Zahl, die:
- exakt als IEEE-754-Double-Precision-Zahl dargestellt werden kann, und
- deren IEEE-754-Darstellung nicht das Ergebnis der Rundung einer anderen ganzen Zahl zur Anpassung an die IEEE-754-Darstellung sein kann.
Zum Beispiel ist 253 - 1 ein safe integer: Er kann exakt dargestellt werden, und keine andere ganze Zahl wird unter irgendeinem IEEE-754-Rundungsmodus auf ihn gerundet. Im Gegensatz dazu ist 253 kein safe integer: Er kann in IEEE-754 exakt dargestellt werden, aber die ganze Zahl 253 + 1 kann in IEEE-754 nicht direkt dargestellt werden, sondern wird unter Round-to-Nearest- und Round-to-Zero-Rundung auf 253 gerundet.
Die Verarbeitung von Werten größer oder kleiner als ~9 Billiarden mit voller Präzision erfordert die Verwendung einer Arithmetik-Bibliothek mit beliebiger Präzision. Weitere Informationen zu Fließkomma-Darstellungen von Zahlen finden sich unter „What Every Programmer Needs to Know about Floating Point Arithmetic".
Für größere ganze Zahlen sollte der BigInt-Typ in Betracht gezogen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $testValue Pflicht | any | — | Der auf safe integer zu prüfende Wert. |
Rückgabewert
true, wenn der angegebene Wert eine Zahl ist, die ein safe integer ist. Andernfalls false.Beispiele
isSafeInteger() verwenden
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