XL 2010 affichage nombre faux au delà de la 12° décimale

jojo4738

XLDnaute Nouveau
Bonjour à tous,
je me bats depuis 2 heures pour essayer de comprendre pourquoi (sur excel 2010 sur PC) l'affichage du résultat d'une cellule dont la formule est une somme et/ou soustraction d'autres cellules - donc simple !- m'affiche un faux résultat au delà de la 12° décimale. Du coup la valeur de cette cellule devant (quand elle est exacte), déclencher une mise en forme conditionnelle (entre autre), ne m'indique pas que le résultat attendu est atteint.
Dans mon exemple joint la valeur affichée est 981,43€ (avec un format à 2 décimales) mais 981,42999999993€ à la 12° décimale (!!) et pas 981,43000000000€
merci de vos réponses
 

Pièces jointes

  • résultat faux à la 12 décimale.xlsx
    8.7 KB · Affichages: 5

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Ca me paraît "normal" en raison des limites de précision de représentation des nombres des µP.
C'est un problème très couramment rencontré quand on additionne des heures sous Excel. :(

Tu peux constater que si tu multiplies toutes les valeurs par 100 (afin d'avoir des nombres entiers), alors le résultat est correct.


Voir aussi cette magnifique explication de Bernard :
 

Pièces jointes

  • résultat faux à la 12 décimale.xlsx
    14.6 KB · Affichages: 1
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jojo,
Cela arrive parfois car XL travaille avec 15 décimales et il peut arriver qu'une question d'arrondi donne un résultat précis à 1e-15 mais différent d'une valeur exacte.
Une solution dans ce cas peut être :
VB:
=ARRONDI(-C8+C10-C11-C9;2)
C'est une plaie car c'est un phénomène imprévisible, et on peut quelquefois chercher longtemps, surtout si l'affichage est avec 2 décimaux alors que la valeur de la cellule donne une valeur non exacte.
 

jojo4738

XLDnaute Nouveau
Bonjour Jojo,
Cela arrive parfois car XL travaille avec 15 décimales et il peut arriver qu'une question d'arrondi donne un résultat précis à 1e-15 mais différent d'une valeur exacte.
Une solution dans ce cas peut être :
VB:
=ARRONDI(-C8+C10-C11-C9;2)
C'est une plaie car c'est un phénomène imprévisible, et on peut quelquefois chercher longtemps, surtout si l'affichage est avec 2 décimaux alors que la valeur de la cellule donne une valeur non exacte.
merci Sylvanu,
J'aurai dû y penser , ça marche!
 

Discussions similaires

Statistiques des forums

Discussions
312 817
Messages
2 092 367
Membres
105 380
dernier inscrit
ASea DSea