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
- 11 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.