Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 2 · Exercice de TD

Au-delà des entiers sûrs

Valeurs, types et opérateurs · niveau 3 (difficile)

Énoncé

Prévoir l'affichage, puis l'expliquer. Un ISBN-13 est-il un entier sûr ? Et un identifiant de commande de 19 chiffres, comme en produisent certaines bases de données ?


// eslint-disable-next-line no-loss-of-precision -- la perte de précision est le sujet
console.log(9007199254740993);
console.log(2 ** 53 === 2 ** 53 + 1);
console.log(Number.isSafeInteger(2 ** 53), Number.isSafeInteger(9782100847099));
console.log(2n ** 53n + 1n);

Corrigé


9007199254740992
true
false true
9007199254740993n

Au-delà de , les flottants consécutifs sont espacés de 2 : le littéral 9007199254740993 () est arrondi au flottant le plus proche, , et calculé tombe aussi sur . ESLint signale d'ailleurs ce littéral (règle no-loss-of-precision, désactivée ici par un commentaire). Un ISBN-13 a 13 chiffres, moins de : c'est un entier sûr, mais il reste un identifiant, à garder en chaîne. Un identifiant de 19 chiffres dépasse : converti en nombre, il serait altéré. On le garde en chaîne, ou en bigint s'il faut calculer.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →