OVH Cloud OVH Cloud

bug excel

2 réponses
Avatar
azzouz nouari
Lors de la soustraction de deux nombres décimale ayant 30 chiffres après la
virgule avec une partie, le resulta obtenu est incohérent. Quelle en est la
raison
exp: 94,18 - 94,04 = 0,140000000000001000000000000000

2 réponses

Avatar
Denis
d'abord bonjour!!!!
ce n'est pas un bug excel mais un bug de tous les
ordinateurs du monde entier car ils font tous à peu près
la même erreur.
Quand on code un nombre réel sur 64 bits suivant une norme
(IEEE) on fait une erreur qui est connue depuis les débuts
de l'informatique(la précision est de l'ordre de 10^-15.

Denis

-----Message d'origine-----
Lors de la soustraction de deux nombres décimale ayant
30 chiffres après la

virgule avec une partie, le resulta obtenu est
incohérent. Quelle en est la

raison
exp: 94,18 - 94,04 = 0,140000000000001000000000000000

.



Avatar
Bruno LOUIS
Salut,

Le nombre décimal 0,14 s'écrit en base 2 : 0,001000111101011100001010001111,
et encore se n'est qu'une valeur approchée.

Il existe des valeurs que tu ne peux pas écrire en base 2 tout comme
certaines valeurs ne peuvent pas être écrites en base 10:
1/3 = 0,333333333333333333 mais ce n'est qu'une valeur approchée.

Lorsque tu demandes à ton PC de calculer une opération dont le résultat est
0,14, il aura forcément dans sa mémoire une valeur approchée du résultat.

Pour pallier au problème les informaticiens ont créé des routines gérant les
nombres en utilisant des mantises très large. Cependant, si tu t'amuse à
demander une précision de 30 chiffres après la virgule, forcément la mantise
retenue au départ est insuffisante. Il te faudra utiliser des routines
spécifiques.

Cela dit, je ne vois pas très bien ce qu'apporte comme information utile le
30ième chiffre après la virgule.

Cordialement,

Bruno





"Denis" a écrit dans le message de
news: 07df01c4d85d$eee241a0$
d'abord bonjour!!!!
ce n'est pas un bug excel mais un bug de tous les
ordinateurs du monde entier car ils font tous à peu près
la même erreur.
Quand on code un nombre réel sur 64 bits suivant une norme
(IEEE) on fait une erreur qui est connue depuis les débuts
de l'informatique(la précision est de l'ordre de 10^-15.

Denis

-----Message d'origine-----
Lors de la soustraction de deux nombres décimale ayant
30 chiffres après la

virgule avec une partie, le resulta obtenu est
incohérent. Quelle en est la

raison
exp: 94,18 - 94,04 = 0,140000000000001000000000000000

.