Bug de représentation numérique ?

  • Initiateur de la discussion Daniel Cordier
  • Date de début
D

Daniel Cordier

Guest
Bonjour à tous,

Pourriez-vous me confirmer le même comportement que j'ai constaté sur deux machines différentes ?

Voici, je tape dans une cellule: =70668.243+52301.473+219162.641
En validant la saisie le contenu devient : =70668.243+52301.4729999999+219162.641

Arrivez-vous à reproduire cela ?

Dans mon cas cela n'est pas gênant, je peux remplacer pour être certain de ne pas influencer mon calcul par: =70668.243+(52301.472+0.001)+219162.641, mais pour certaines personnes ou certains calculs cumulés cela pourrait avoir des conséquences.

Merci d'avance pour vos réponses.

Daniel
 
J

jmps

Guest
Bonjour Daniel, Lapou, Le Forum,

Effectivement chez moi aussi (XL97).

Je me suis amusé à faire différents tests et Le problème surgit quand on dépasse la capacité d'un integer (sans tenir compte des décimales). A savoir :
32767.473 = 32767.473
Mais
32768.473 = 32768.4729999999...

Alors bug ou explication logique ? Je ne sais pas. Ce qui est curieux, c'est que les autres nombres de ta formule sont aussi plus gros que des integers.

Si quelqu'un d'autre a une idée, elle est bienvenue.
Je vais essayer de faire d'autres tests par curiosité.
Et aussi, si d'autres utilisateurs <> XL97 peuvent tester et nous dire.

Bonne après-midi à tous.

José
 
P

Pascal76

Guest
bonjour

Je viens de tester sur excel 2000 et excel XP même problème

Mais en en discutant avec Jean-Marie sur le chat lui n'a pas le problème en MAC.

Alors le problème ne viendrait-il pas plutôt de Windows et de sa façon de traiter les virgules ou les décimales ???


Pascal
 
J

Jean-Marie

Guest
Bonjour

Je vais dire peut-être une bêtise, mais Excel stocke les valeurs à virgule flottante sous forme de fraction.

Je m'explique, si l'on tape cette formule dans une cellule =1/23 et que l'on reporte sur les 22 cellules en dessous et que l'on fasse une addition on obtient 1.
Pourquoi 1, pourtant 1/23 fait 0,0434782608695652000 (il faut aller à la 19 décimale pour trouver un 000), mais cette valeur est fausse ...52 * 23 ne donne pas ...000. Le 1 s'explique en additionnant 1/23 + 1/23 etc.

@+Jean-Marie
 
J

jmps

Guest
Re tous, bonsoir JM,

A tout hasard j'ai essayé la calculette.
Pas de problème de ce côté là :

32767.473 * 1 = 32767.473
32768.473 * 1 = 32768.473

Maintenant je sais pas si mon test est très "catholique".

Peut-être @+

José
 
D

Daniel Cordier

Guest
Je pense effectivement à un problème de représentation. Cependant cela n'explique pas que Excel transforme mon nombre lorsque je valide la formule saisie.

Il est indébiable que les réels ne sont jamais représentés correctement en mémoire mais c'est la première fois que je vois l'affichage en être affecté.
 

Statistiques des forums

Discussions
314 208
Messages
2 107 290
Membres
109 796
dernier inscrit
aelgar