Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Number.isSafeInteger()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2015 browserübergreifend verfügbar.

Die statische Methode Number.isSafeInteger() bestimmt, ob der angegebene Wert eine Zahl ist, die eine sichere Ganzzahl darstellt.

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

js
Number.isSafeInteger(testValue)

Parameter

testValue

Der Wert, der darauf geprüft werden soll, ob er eine sichere Ganzzahl ist.

Rückgabewert

Der boolesche Wert true, wenn der angegebene Wert eine Zahl ist, die eine sichere Ganzzahl darstellt. Andernfalls false.

Beschreibung

Die sicheren Ganzzahlen umfassen alle Ganzzahlen von -(253 - 1) bis einschließlich 253 - 1 (±9.007.199.254.740.991). Eine sichere Ganzzahl ist eine Ganzzahl, die:

  • sich exakt als IEEE-754-Zahl mit doppelter Genauigkeit darstellen lässt und
  • deren IEEE-754-Darstellung nicht dadurch entstehen kann, dass eine andere Ganzzahl auf eine darstellbare IEEE-754-Zahl gerundet wird.

Beispielsweise ist 253 - 1 eine sichere Ganzzahl: Sie lässt sich exakt darstellen, und keine andere Ganzzahl wird bei irgendeinem IEEE-754-Rundungsmodus auf sie gerundet. Dagegen ist 253 keine sichere Ganzzahl: Sie lässt sich zwar in IEEE-754 exakt darstellen, aber die Ganzzahl 253 + 1 lässt sich nicht direkt in IEEE-754 darstellen und wird stattdessen sowohl bei Rundung auf den nächsten Wert als auch bei Rundung gegen null auf 253 gerundet.

Um Werte über oder unter etwa 9 Billiarden mit voller Genauigkeit zu verarbeiten, benötigen Sie eine Bibliothek für Arithmetik mit beliebiger Genauigkeit. Weitere Informationen zur Gleitkommadarstellung von Zahlen finden Sie unter Was jeder Programmierer über Gleitkommaarithmetik wissen sollte.

Für größere Ganzzahlen sollten Sie den Typ BigInt verwenden.

Beispiele

isSafeInteger() verwenden

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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-number.issafeinteger

Browser-Kompatibilität

Siehe auch