Number.MAX_SAFE_INTEGER
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Die statische Dateneigenschaft Number.MAX_SAFE_INTEGER repräsentiert die größte sichere Ganzzahl in JavaScript (253 – 1).
Für größere Ganzzahlen sollten Sie erwägen, BigInt zu verwenden.
Probieren Sie es aus
const x = Number.MAX_SAFE_INTEGER + 1;
const y = Number.MAX_SAFE_INTEGER + 2;
console.log(Number.MAX_SAFE_INTEGER);
// Expected output: 9007199254740991
console.log(x);
// Expected output: 9007199254740992
console.log(x === y);
// Expected output: true
Wert
9007199254740991 (9.007.199.254.740.991 oder ~9 Billiarden).
Eigenschaften von Number.MAX_SAFE_INTEGER | |
|---|---|
| Schreibbar | nein |
| Aufzählbar | nein |
| Konfigurierbar | nein |
Beschreibung
Das Double-Precision-Gleitkommaformat hat nur 52 Bits zur Darstellung der Mantisse, daher kann es nur sicher Ganzzahlen zwischen -(253 – 1) und 253 – 1 darstellen. "Sicher" bedeutet in diesem Zusammenhang die Fähigkeit, Ganzzahlen exakt darzustellen und korrekt zu vergleichen. Zum Beispiel wird Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 als wahr bewertet, was mathematisch inkorrekt ist. Weitere Informationen finden Sie unter Number.isSafeInteger().
Wie in Number.EPSILON erwähnt, hängt die Genauigkeit von Zahlen von ihrer Größe ab. Number.MAX_SAFE_INTEGER stellt den größten Wert dar, bei dem Ganzzahlen genau verarbeitet werden können, aber Sie können immer noch sinnvolle arithmetische Operationen an größeren Zahlen durchführen, allerdings ohne die Präzision auf Ganzzahlebene. Die größte darstellbare Zahl in JavaScript ist tatsächlich Number.MAX_VALUE, die etwa 1,7976931348623157 × 10308 beträgt.
Da MAX_SAFE_INTEGER eine statische Eigenschaft von Number ist, verwenden Sie es immer als Number.MAX_SAFE_INTEGER und nicht als Eigenschaft eines Zahlenwerts.
Beispiele
>Rückgabewert von MAX_SAFE_INTEGER
Number.MAX_SAFE_INTEGER; // 9007199254740991
Beziehung zwischen MAX_SAFE_INTEGER und EPSILON
Number.EPSILON beträgt 2-52, während MAX_SAFE_INTEGER 253 – 1 ist — beide leiten sich aus der Breite der Mantisse ab, die 53 Bits beträgt (wobei das höchste Bit immer 1 ist). Das Multiplizieren ergibt einen Wert, der sehr nahe — aber nicht gleich — 2 ist.
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-number.max_safe_integer> |
Browser-Kompatibilität
Loading…