Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Number.isSafeInteger()
Baseline Widely available
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 méthodeNumber.isSafeInteger() permet de déterminer si la valeur, passée en argument, est un entier représentable correctement en JavaScript (c'est-à-dire un nombre compris entre -(2^53-1) et 2^53-1).
Dans cet article
Exemple interactif
function warn(x) { if (Number.isSafeInteger(x)) { return "Precision safe."; } return "Precision may be lost!";}console.log(warn(Math.pow(2, 53)));// Expected output: "Precision may be lost!"console.log(warn(Math.pow(2, 53) - 1));// Expected output: "Precision safe."Note :Pour représenter des entiers qui ne sont pas compris dans cet intervalle, on pourra utiliser le typeBigInt.
Syntaxe
Number.isSafeInteger(valeurÀTester);Paramètres
valeurÀTesterLa valeur dont on souhaite savoir si elle représente un entier représentable correctement en une valeur non signée sur 32 bits. (JavaScript utiliseles nombres au format de virgule flottante à double précision comme spécifié dansIEEE 754 et ne peut représenter avec certitude un entier qu'entre
-(2^53-1)et2^53-1(c'est-à-dire ±9007199254740991).
Valeur de retour
Un booléen qui indique si la valeur fournie en argument est un entier représentable correctement en JavaScript.
Description
Un entier correctement représentable en JavaScript :
- peut exactement être représenté avec un nombre à précision double selon IEEE-754
- la réprésentation IEEE-754 du nombre ne permet pas de l'arrondir à un autre entier pouvant être représenté avec le format décrit par IEEE-754.
Ainsi, par exemple,2^53 - 1 peut être représenté correctement, aucun autre entier ne peut être arrondi en cette valeur selon IEEE-754. En revanche,2^53 ne peut pas être représenté correctement car2^53 + 1 sera arrondi en2^53 selon les règles IEEE-754 (arrondi à l'entier le plus proche).
L'intervalle des entiers qui peuvent être correctement représentés est[-(2^53 - 1),2^53 - 1 ].
Exemples
Number.isSafeInteger(3); // trueNumber.isSafeInteger(Math.pow(2, 53)); // falseNumber.isSafeInteger(Math.pow(2, 53) - 1); // trueNumber.isSafeInteger(NaN); // falseNumber.isSafeInteger(Infinity); // falseNumber.isSafeInteger("3"); // falseNumber.isSafeInteger(3.1); // falseNumber.isSafeInteger(3.0); // trueSpécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-number.issafeinteger> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Numberauquel appartient cette méthode Number.MIN_SAFE_INTEGERNumber.MAX_SAFE_INTEGERBigInt