Number : méthode statique isSafeInteger()
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 méthode statique Number.isSafeInteger() détermine si la valeur fournie est un nombre qui est un entier sûr.
Exemple interactif
function warn(x) {
if (Number.isSafeInteger(x)) {
return "Précision sûre.";
}
return "La précision peut être perdue !";
}
console.log(warn(2 ** 53));
// Sortie attendue : "La précision peut être perdue !"
console.log(warn(2 ** 53 - 1));
// Sortie attendue : "Précision sûre."
Syntaxe
Number.isSafeInteger(testValue)
Paramètres
testValue-
La valeur à tester pour savoir si c'est un entier sûr.
Valeur de retour
La valeur booléenne true si la valeur donnée est un nombre qui est un entier sûr. Sinon false.
Description
Les entiers sûrs sont tous les entiers de -(253 - 1) à 253 - 1, inclus (±9 007 199 254 740 991). Un entier sûr est un entier qui :
- peut exactement être représenté avec un nombre à précision double selon IEEE-754, et
- dont la représentation IEEE-754 ne peut pas être le résultat de l'arrondi d'un autre entier pour s'adapter à la représentation IEEE-754.
Par exemple, 253 - 1 est un entier sûr : il peut être représenté exactement, et aucun autre entier n'est arrondi à cette valeur selon les règles d'arrondi IEEE-754. En revanche, 253 n'est pas un entier sûr : il peut être représenté exactement en IEEE-754, mais l'entier 253 + 1 ne peut pas être représenté directement en IEEE-754 et est arrondi à 253 selon les règles d'arrondi au plus proche et à zéro.
La gestion des valeurs supérieures ou inférieures à ~9 quadrillions avec une précision totale nécessite l'utilisation d'une bibliothèque d'arithmétique à précision arbitraire (angl.). Voir Ce que tout programmeur doit savoir sur l'arithmétique en virgule flottante (angl.) pour plus d'informations sur les représentations en virgule flottante des nombres.
Pour les entiers plus grands, envisagez d'utiliser le type BigInt.
Exemples
>Utiliser isSafeInteger()
Number.isSafeInteger(3); // true
Number.isSafeInteger(2 ** 53); // false
Number.isSafeInteger(2 ** 53 - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-number.issafeinteger> |
Compatibilité des navigateurs
Voir aussi
- La prothèse d'émulation de
Number.isSafeIntegerdanscore-js(angl.) - La prothèse d'émulation es-shims de
Number.isSafeInteger(angl.) - L'objet
Number - La propriété statique
Number.MIN_SAFE_INTEGER - La propriété statique
Number.MAX_SAFE_INTEGER - L'objet
BigInt