Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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
ÉcrivableNon
ÉnumérableNon
ConfigurableNon

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

js
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.

js
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