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

APi -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
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 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
APi
 
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   Statut Membre Dernière intervention   526
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
APi
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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