Arrondi, troncature, arrondi supérieur et le problème 0,1 + 0,2 — tout sur les décimales d'un calculateur
La différence entre arrondi, troncature et arrondi supérieur, le traitement des fractions de l'unité monétaire, l'arrondi bancaire, pourquoi 0,1 + 0,2 donne 0,30000000000000004 sur ordinateur et comment ce calculateur le gère.
Les calculs de pourcentage comportent beaucoup de divisions et de multiplications décimales, et tombent donc rarement juste. Pour un même calcul, la façon de traiter les dernières décimales fait varier le résultat de quelques centimes ; connaître les règles permet d'expliquer les écarts entre tickets de caisse et devis.
Trois façons de traiter les décimales
- Arrondi : si le chiffre éliminé est 5 ou plus, on arrondit au-dessus, sinon on l'élimine. 1 234,5 → 1 235
- Troncature (inférieur) : on élimine tous les chiffres au-delà du rang choisi. 1 234,9 → 1 234
- Arrondi supérieur : si le chiffre éliminé n'est pas 0, on arrondit au-dessus. 1 234,1 → 1 235
On peut aussi changer d'unité. 12 345 € tronqués à la dizaine donnent 12 340 € ; arrondis à la centaine, 12 300 €.
Quel usage pour chacun
- Montant de TVA : en Corée du Sud, la troncature des fractions inférieures à 1 won est une pratique courante
- Paiement des impôts nationaux : en Corée du Sud, selon l'article 47 de la loi sur la gestion des fonds du Trésor national, les fractions inférieures à 10 won ne sont pas comptées
- Prix remisés en magasin : cela varie selon les enseignes, mais le montant de la remise est souvent tronqué à la dizaine ou à la centaine
- Publication de statistiques et de taux : l'arrondi à la première ou deuxième décimale est la règle
- Quantités nécessaires (cartons, personnes) : comme il ne doit pas en manquer, on arrondit au supérieur
Décimales des nombres négatifs
Arrondir −2,5 donne-t-il −3 ou −2 ? Ce calculateur arrondit en s'éloignant de zéro, soit −3. La troncature va vers zéro (−1,239 → −1,23), l'arrondi supérieur s'éloigne de zéro. C'est une méthode qui applique la même règle à la grandeur (valeur absolue), quel que soit le signe du montant.
L'arrondi bancaire
Quand la valeur tombe exactement à la moitié (…5), on arrondit vers le chiffre pair (2,5 → 2, 3,5 → 4). Cette méthode est utilisée dans certains environnements comptables et de programmation pour réduire l'erreur qui penche d'un côté lorsqu'on arrondit un très grand nombre de fois. Les calculs courants et ce calculateur utilisent l'arrondi classique.
Pourquoi 0,1 + 0,2 donne 0,30000000000000004 sur ordinateur
L'ordinateur stocke les nombres en binaire. De même que 1/3 s'écrit 0,333… sans fin en décimal, 0,1 est une fraction binaire infinie : il n'est pas stocké exactement mais arrondi à une valeur très proche. C'est pourquoi, dans la plupart des langages, y compris JavaScript, 0,1 + 0,2 donne 0,30000000000000004.
Pour la même raison, la méthode courante pour arrondir 1,005 à la deuxième décimale (toFixed(2)) renvoie 1,00 et non 1,01, car 1,005 est en réalité stocké sous la forme 1,00499999….
Comment ce calculateur procède
- Tous les résultats intermédiaires sont ramenés à 12 chiffres significatifs, ce qui élimine le bruit de la représentation binaire. 0,1 + 0,2 → 0,3
- L'arrondi ne multiplie pas le nombre : il décale les chiffres en notation exponentielle décimale. 1,005 → 1,01 ; 2,675 → 2,68
- Dans les onglets Remise et TVA, vous pouvez choisir l'unité (0,01, 1, 10, 100, etc.) et la méthode (troncature, arrondi, supérieur) pour les fractions des montants.
- Cette méthode a été validée par des tests unitaires sous node sur les cas limites (1,005, −2,5, valeurs très petites et très grandes).
Décimales affichées et valeur réelle
Le réglage Décimales, en haut de l'écran, ne change que le nombre de décimales affichées. 1 ÷ 3 × 100 vaut en interne 33,3333333333 et s'affiche 33,33 avec 2 décimales. Le bouton Copier copie la valeur affichée à l'écran.
En résumé
Des résultats qui diffèrent de quelques centimes à cause de règles d'arrondi différentes ne sont pas une erreur mais une différence de règle. Quand un montant ne tombe pas juste, vérifiez d'abord ① à quelle étape les décimales ont été traitées et ② quelles unité et méthode ont été utilisées.