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 : 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

js
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()

js
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