La constante Number.MAX_SAFE_INTEGER
représente la valeur (sûre) maximale d’un nombre entier en JavaScript (253 -1).
Note : Pour représenter des entiers supérieurs à cette valeur, on pourra utiliser le type BigInt
.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Attributs de Number.MAX_SAFE_INTEGER |
|
---|---|
Écrivable | Non |
Énumérable | Non |
Configurable | Non |
Description
La constante MAX_SAFE_INTEGER
a une valeur de 9007199254740991
. Cette valeur s'explique par le fait que JavaScript utilise les nombres au format de virgule flottante à double précision comme spécifié dans IEEE 754 et ne peut représenter avec certitude qu’un nombre entre -(253-1)
et 253 -1
.
Dans ce contexte, « sûr » fait référence à la capacité à représenter exactement les entiers et à les comparer entre eux. Par exemple, Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2
vaudra true
ce qui est mathématiquement incorrect. Pour plus d'informations, voir également Number.isSafeInteger()
.
MAX_SAFE_INTEGER
est une propriété statique de Number
, elle doit toujours être utilisée comme Number.MAX_SAFE_INTEGER
et non pas comme la propriété d'un objet Number
qui aurait été instancié.
Exemples
Number.MAX_SAFE_INTEGER // 9007199254740991
Math.pow(2, 53) -1 // 9007199254740991
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Number.MAX_SAFE_INTEGER' dans cette spécification. |
Standard | Définition initiale |
ECMAScript (ECMA-262) La définition de 'Number.MAX_SAFE_INTEGER' dans cette spécification. |
Standard évolutif |
Compatibilité des navigateurs
BCD tables only load in the browser
Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une pull request sur https://github.com/mdn/browser-compat-data.