JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 2 · Exercice de TD
Arrondir un prix
Valeurs, types et opérateurs · niveau 3 (difficile)
Énoncé
Prévoir l'affichage. Pourquoi (1.005).toFixed(2) ne donne-t-il pas "1.01" ? En quoi la méthode des centimes évite-t-elle le problème ?
console.log(Math.round(2.5), Math.round(-2.5), Math.round(-2.6));
console.log((2.345).toFixed(2), (1.005).toFixed(2));
console.log(Math.round(1.005 * 100) / 100, 1.005 * 100);
console.log((1.005).toPrecision(20));Corrigé
3 -2 -3
2.35 1.00
1 100.49999999999999
1.0049999999999998934
Math.round arrondit les demis vers le haut : donne . Le flottant le plus proche de 1,005 est 1,00499999999999989…, que toPrecision(20) révèle : il est sous la moitié, toFixed(2) donne donc "1.00", et le produit par 100 donne 100,4999…, arrondi à 100. À l'inverse, 2,345 est stocké un peu au-dessus et donne "2.35". Avec des centimes entiers, on n'arrondit qu'une fois, à la saisie (Math.round(prix * 100)), et ce qui suit est exact.
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.