Bonjour,
Le 19/11/2019 à 11:02, Totoro a écrit :
Bonjour,
Je suis sous Ubuntu 18.04, avec LibreOffice 6.3.3.2, problème constaté
également sur 14.04, avec LibrOffice 5.4
Lorsqu'on fait dans une cellule =1,8-1,7 par exemple, on a bien 0,1
mais si on augment le nombre de décimale visible, et qu'on passe de
15 à 16
ce n'est plus égale à 0,1, mais: 0,0999999999999999 et qu'en on
passe à 17
décimale 0,09999999999999990
C'est normal, cela tient au fait que les calculs sur ordinateur sont
faits en base 2 et non dans le système décimal qui n'est utilisé que
pour l'affichage. Dans la machine les nombres sont représentés en
utilisant seulement 2 chiffres 0 et 1 : 0, 1, 10, 11, 100, 101, etc.
pour les premiers nombres entiers.
En base 2 on ne peut pas représenter 0,1 avec un nombre fini de
décimales, de la même façon qu'en base 10 on ne peut pas représenter
1/3 avec un nombre fini de décimales.
L'opération 1,8-1,7 consiste donc à réaliser les opérations suivantes :
1/ convertir 1,8 dans la représentation interne de la machine
2/ convertir 1,7 dans la représentation interne de la machine
3/ faire la soustraction des 2 représentations internes
4/ convertir le résultat en base 10
À la fin le résultat ne tombe pas juste.
On pourrait faire les calculs en base 10 mais ce serait beaucoup plus
coûteux car il faudrait utiliser des algorithmes analogues à ceux
qu'on emploie quand on fait les opérations à la main. Sur une
calculette ce coût est négligeable car on ne fait pas beaucoup
d'opérations, mais dans un tableur ou dans le domaine du calcul
scientifique ce n'est pas envisageable actuellement.
Enfin bref, problème non reproduit sous une 6.1 sous Windows 7
Vraiment ? Je suis dubitatif.
Le Windows 7 en question, c'est un 32 bits ou un 64 bits ?
Bug ?
Non, juste une limitation propre à l'arithmétique particulière des
ordinateurs.
https://fr.wikipedia.org/wiki/Virgule_flottante
Bonne journée
JBF