Number : propriété statique MAX_SAFE_INTEGER
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2015.
La propriété statique Number.MAX_SAFE_INTEGER représente le nombre entier sûr maximal en JavaScript (253 - 1).
Pour les entiers plus grands, envisagez d'utiliser le type BigInt.
Exemple interactif
const x = Number.MAX_SAFE_INTEGER + 1;
const y = Number.MAX_SAFE_INTEGER + 2;
console.log(Number.MAX_SAFE_INTEGER);
// Sortie attendue : 9007199254740991
console.log(x);
// Sortie attendue : 9007199254740992
console.log(x === y);
// Sortie attendue : true
Valeur
9007199254740991 (9 007 199 254 740 991, ou ~9 quadrillions).
Attributs de Number : propriété statique MAX_SAFE_INTEGER | |
|---|---|
| Écrivable | Non |
| Énumérable | Non |
| Configurable | Non |
Description
Le format de nombre à virgule flottante double précision (angl.) n'a que 52 bits pour représenter la mantisse, il ne peut donc représenter en toute sécurité que les entiers compris entre -(253 - 1) et 253 - 1. « Sûr » dans ce contexte fait référence à la capacité de représenter exactement les entiers et de les comparer correctement. Par exemple, Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 est évalué à true, ce qui est mathématiquement incorrect. Voir Number.isSafeInteger() pour plus d'informations.
Comme mentionné dans Number.EPSILON, la précision des nombres dépend de leur magnitude. Number.MAX_SAFE_INTEGER représente la plus grande valeur pour laquelle les opérations au niveau des entiers peuvent être effectuées avec précision, mais vous pouvez toujours effectuer des calculs significatifs sur des nombres plus grands, simplement sans précision au niveau des entiers. Le plus grand nombre représentable en JavaScript est en fait Number.MAX_VALUE, qui est approximativement 1,7976931348623157 × 10308.
Puisque MAX_SAFE_INTEGER est une propriété statique de Number, vous l'utilisez toujours comme Number.MAX_SAFE_INTEGER, plutôt que comme une propriété d'une valeur numérique.
Exemples
>Valeur de retour de MAX_SAFE_INTEGER
Number.MAX_SAFE_INTEGER; // 9007199254740991
Relation entre MAX_SAFE_INTEGER et EPSILON
Number.EPSILON est 2-52, tandis que MAX_SAFE_INTEGER est 253 - 1 — les deux sont dérivés de la largeur de la mantisse, qui est de 53 bits (avec le bit le plus élevé étant toujours 1). Les multiplier donne une valeur très proche — mais pas égale — de 2.
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-number.max_safe_integer> |
Compatibilité des navigateurs
Voir aussi
- La prothèse d'émulation de
Number.MAX_SAFE_INTEGERdanscore-js(angl.) - La prothèse d'émulation es-shims de
Number.MAX_SAFE_INTEGER(angl.) - La propriété statique
Number.MIN_SAFE_INTEGER - La propriété statique
Number.MAX_VALUE - La méthode statique
Number.isSafeInteger() - L'objet
BigInt