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 angegebene Wert eine Zahl ist, die ein sicherer Integer ist.

Probieren Sie es aus

Syntax

js
Number.isSafeInteger(testValue)

Parameter

testValue

Der Wert, der darauf getestet werden soll, 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 bestehen aus allen ganzen Zahlen von -(253 - 1) bis 253 - 1, einschließlich (±9.007.199.254.740.991). Ein sicherer Integer ist ein Integer, der:

  • genau als eine IEEE-754-Doppelpräzisionszahl dargestellt werden kann und
  • dessen IEEE-754-Darstellung nicht das Ergebnis der Rundung eines anderen Integers ist, um in die IEEE-754-Darstellung zu passen.

Zum Beispiel ist 253 - 1 ein sicherer Integer: Er kann exakt dargestellt werden, und kein anderer Integer wird unter irgendeinem IEEE-754-Rundungsmodus auf ihn gerundet. Im Gegensatz dazu ist 253 kein sicherer Integer: Er kann zwar genau in IEEE-754 dargestellt werden, aber der Integer 253 + 1 kann nicht direkt in IEEE-754 dargestellt werden, sondern wird unter Rundung auf Nächsten und Rundung auf Null auf 253 gerundet.

Das Handhaben von Werten, die größer oder kleiner als etwa 9 Billiarden sind, mit voller Präzision erfordert die Verwendung einer beliebigen Präzisionsarithmetik-Bibliothek. Siehe Was jeder Programmierer über Gleitkomma-Arithmetik wissen sollte für weitere Informationen über die Gleitkomma-Darstellung von Zahlen.

Für größere Integer ziehen Sie in Betracht, den BigInt-Typ zu verwenden.

Beispiele

Verwendung von isSafeInteger()

js
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 Language Specification
# sec-number.issafeinteger

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch