Start · Sprachen · JavaScript · Referenz · Number.isSafeInteger()

Number.isSafeInteger()

Methode

Die statische Methode <code>Number.isSafeInteger()</code> prüft, ob der übergebene Wert eine Zahl ist, die ein <em>safe integer</em> ist.

Kategorie: method-property

Signatur

Number.isSafeInteger(testValue)

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

Typ
boolean
Beschreibung
Der boolesche Wert 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