0,8100000000000000000000 + 0,01 = 0,8200000000000010000000 ???

Fermé
APi - 15 mai 2015 à 17:25
Patrice33740 Messages postés 8559 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 13 mars 2025 - 17 mai 2015 à 14:19
Bonjour,
Avec excel, si j'additionne 0,81 + 0,01, j'obtiens 0,8200000000000010000000

Du moins, j'ai cela si je procède de la sorte
  • dans la case A01, j'écris 0,81 en demandant un affichage avec un maximum de "0"
  • en dessous, dans A02, je fais : =A01+0,01
  • j'obtiens : 0,8200000000000010000000

Pourquoi????
Bien cordialement,

4 réponses

Mike-31 Messages postés 18379 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 mars 2025 5 125
15 mai 2015 à 17:43
Bonjour,

C'est un problème relevè depuis pas mal de temps liè au langage binaire, j'ai personnellement posé la question à plusieurs reprises à Microsoft toujours sans réponse sur cette décimale parasite qui s'affiche après la douzième
j'espère qu'une réponse logique sera un jour apportée en attendant une rectification du logiciel.
Il faut également signaler que peu de personnes travaillent avec plus d'une dizaine de décimales
2
Merci pour votre réponse très claire.
J'ai un peu cherché avant de poser cette question, mais je n'avais pas trouvé de réponse (ma question était mal posée certainement).
Je ne voulais pas travailler avec 12 décimales, mais je faisais le calcul suivant :

Colonne A : le temps, qui s'incrémente par valeur de +0,01
Et je faisais un test : si temps = 3, alors....
et ma formule ne marchait pas car il ne trouvait pas 10, mais 10,000000000000010000
(ou un truc comme cela).

J'ai été obligé de mettre un calcul d'arrondi à 4 chiffres après la virgule pour que ca marche :
si ( arrondi(temps;4) ) = 10, alors....

Merci encore.
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 525
16 mai 2015 à 09:05
Bonjour,

La question de la précision numérique dans Microsoft Excel est posée depuis longtemps et revient régulièrement sur le tapis.
Voici un document qui apporte les explications :

https://docs.microsoft.com/en-us/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result

A+
2
Patrice33740 Messages postés 8559 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 13 mars 2025 1 779
16 mai 2015 à 10:59
Bonjour,

Curieusement, je n'arrive pas à reproduire cette erreur, que j'utilise l'affichage avec 30 chiffres après la virgule ou un autre type d'affichage.

Aucune de mes versions d'Excel (2003, 2007, 2010) ne présentent cette anomalie !!!

Le calcul en virgule flottante génère effectivement des erreurs mais pas de cet ordre de grandeur sur une simple addition !

Quelle version d'Excel utilises-tu ???
0
Mike-31 Messages postés 18379 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 mars 2025 5 125
Modifié par Mike-31 le 16/05/2015 à 12:23
Re,

Ce problème avait été évoqué sur plusieurs forums et connu de Microsoft

exemple sur cette discussion en 2007 pour laquelle j'avais contacté Microsoft à deux reprises
https://forums.commentcamarche.net/forum/affich-23338155-excel-2007-2-2-0-0000000000001#top

ce problème était rencontré sur les versions 2007 et antérieures, je viens de refaire les tests sur 2010 et apparemment ce problème aurait été résolu en partie, parce que j'ai repris un test amusant, en A1 je saisis 0,9 en A2 1,9
en B1 1 et en B2 2 en C1 la formule =A1-B1 et en C2 A2-B2 qui est la même formule et j'incrémente ces 4 cellules, quelque soit la ligne, la soustraction devrait donner 0,1 quelque soit le nombre de décimales et ben NON
à la ligne 5 ou en A5 j'ai 4,9 et en B5 j'ai 5 le résultat n'est plus 0,100000 mais 0,0999999999999996
et plus amusant ligne 17 ou en A17 j'ai 16,9 et en B17 la valeur 17 en C17 l'erreur réapparait en 15 éme position 0,100000000000001000

Il est vrai que peu de personnes travaillent avec autant de décimales, mais ligne 5 tout de même ce résultat est surprenant au delà de 15 décimales et plus surprenant si on fait 0,1 ce qui devrait être le résultat de 4,9-5 moins la valeur obtenue en C5 soit 0,0999999999999996 le résultat théorique devrait être 0 et ben non il reste toujours un reliquat 0,0000000000000036082 ce qui peut poser problème pour les scientifiques
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
ma version d'Excel est : 2010 / version 14.0.7147.5001 32 bits.
Cela peut certes poser des pbs à des scientifiques, mais tout bêtement si on fait un test : suis-arrivé à t = 3 secondes, en partant de 0 par incréments de 0,01 s .... excel ne trouve pas 3 secondes, mais 3,0000000000001 (ou qlq chose de ressemblant....).
Merci pour vos réponses, qui me confirment que je n'avais pas de virus particulier dans mon ordi ou dans excel... du moins, que beaucoup ont le même "virus" que moi...
Cordialement.
0
Patrice33740 Messages postés 8559 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 13 mars 2025 1 779
Modifié par Patrice33740 le 17/05/2015 à 14:20
Bonjour Mike,

Même constat, le casse tête des arrondis en virgule flottante !

Curieusement (au format standard) :
= -5 + 4,9 + 0,1 renvoie 3,60822E-16 

alors que :
= -5 + 0,1 + 4,9 renvoie 0 


Cordialement
Patrice
0