arrondis.. bug d'Excel ?

rodge5895

XLDnaute Occasionnel
Bonjour à tous

Que penser de ces arrondis un peu bizarre d'Excel ?
Quelqu'un aurait une explication ?

Rodge
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Bonjour.
Ce n'est pas un bogue Excel. C'est une caractéristique machine: les nombre binaires en virgule flottante double précision ne sont défini qu'à une précision d'environ 15 chiffres décimaux. Donc toutes les valeurs qui ne tombent pas justes en binaire, donc qui sont divisées par des nombres qui ne sont pas des puissances de 2 sont un peu inexactes. Tout comme en décimal pour celles divisées par des puissances de nombres autres que 5 et 2.
 

rodge5895

XLDnaute Occasionnel
bonjour et merci pour votre réponse
.. on voit là les limites d'Excel sur des calculs demandant une grande précision (15 chiffres en décimal seulement) !
Heureusement que la l'Agence Spatiale Européenne qui à envoyé sa sonde sur la comète Tchouri (4 kms de diamètre) à 200 millions de kms de la terre n'a pas utilisé Excel dans ses calculs, car elle serait passée à coté !
 

job75

XLDnaute Barbatruc
Bonjour à tous,
Heureusement que la l'Agence Spatiale Européenne qui à envoyé sa sonde sur la comète Tchouri (4 kms de diamètre) à 200 millions de kms de la terre n'a pas utilisé Excel dans ses calculs, car elle serait passée à coté !
Vous racontez vraiment n'importe quoi.

Excel utilise 15 chiffres significatif donc 200 000 000,000001 sera traité.

C'est à dire qu'on a une précision de 1 millimètre sur 200 millions de kilomètres !!!!

Excel est utilisable pour la plupart des missions spatiales, même aux confins du système solaire.

A+
 

Dranreb

XLDnaute Barbatruc
Bonjour.
on voit là les limites d'Excel
Encore une fois ce n'est pas une limite d'Excel. C'est une limite de taille de registre du coprocesseur arithmétique du CPU, combinée à une impossibilité absolue de représentation parfaitement exacte en numération binaire des nombres divisés par 5 notamment, très comparable à l'impossibilité absolue de représentation parfaitement exacte en numération décimale de la valeur du rapport 1/3.
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Bonsour®
bonjour et merci pour votre réponse
.. on voit là les limites d'Excel sur des calculs demandant une grande précision (15 chiffres en décimal seulement) !
Heureusement que la l'Agence Spatiale Européenne qui à envoyé sa sonde sur la comète Tchouri (4 kms de diamètre) à de la terre n'a pas utilisé Excel dans ses calculs, car elle serait passée à coté !
:confused: .. on voit là les limites de compréhension de certains utilisateurs...
l'exemple fourni : 200 millions de kms est en deçà des 15 chiffres de précision... !!!
avec 15 chiffres la précision est de l'ordre du millimètre
upload_2017-10-28_13-54-39.png
pas prés d'être embauché à l'ESA ... :p

Ouuupsss... ! JOB76 a été plus prompt...;)
 

job75

XLDnaute Barbatruc
Re,

Il faut avoir compris que 10^-15 est un nombre extrêmement petit.

Les horloges atomiques ou optiques ont une précision de 10^-16 à 10^-17.

Edit : l'âge de l'univers depuis le big bang est d'environ 15 milliards d'années.

Une précision de 10^-15 le mesurerait à 8 minutes près, intéressant ?

A+
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous :),

Heureusement que la l'Agence Spatiale Européenne qui à envoyé sa sonde sur la comète Tchouri (4 kms de diamètre) à 200 millions de kms de la terre n'a pas utilisé Excel dans ses calculs, car elle serait passée à coté !
Finalement, c'est peut-être une bonne chose que la Grande-Bretagne quitte l'UE. l'ESA sera à l'abri des des erreurs de conversion :p. Bon, je sors :cool:
 

rodge5895

XLDnaute Occasionnel
Bonjour à tous

Finalement, on constate dans l’exemple de mon fichier joint en tête de ce fil :

1/ Que Excel sait faire une soustraction avec une réussite à 100% sur les lignes 3 et 8

2/ Qu’il présente un résultat faux sur les lignes 4 à 7 car présences d’arrondis inattendus, ce qui entraine à tort un message d’erreur indiquant un écart (colonne g) alors qu’il n’y en a bien sûr pas.

A vous lire, il existe une explication scientifique à cet écart (Excel est limité par la taille de son co-processeur CPU ( ???...), il a du mal à comprendre les nb divisés par 5 ( ???...), etc, etc… mais surtout, il ne s’agit pas d’un bogue !

Les érudits et autres experts d’Excel auraient-ils perdu leur sens de l’objectivité ?

Très simplement, je considère à mon niveau, outre le fait (et on est tous d’accord avec ça) qu’Excel est un tableur fabuleux, qu’il présente une faille sur la gestion de ses arrondis, explicable scientifiquement, alors qu’un enfant de classe de CM1 aurait donné la bonne réponse.

Ce qui marche à 10 chiffres après la virgule ne marche plus à 12 ou 15 chiffres.
Sauf à prouver dans l’exemple que 690.56 = 690.559999999999
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous :),

Je suis allé voir du côté de LibreOffice Calc. Il réagit différemment d'Excel.
Tous les écarts sont considérés comme OK alors que 3 d'entres eux ont manifestement des parties décimales différentes !

Pour ceux qui ont LibreOffice, ôter l'extension .txt pour ouvrir le fichier .ods.
 

Fichiers joints

Patrice33740

XLDnaute Occasionnel
[...]A vous lire, il existe une explication scientifique à cet écart
Comme tous les outils, Excel travaille avec une certaine précision, suffisamment grande pour un usage scientifique courant, mais on ne peut pas lui demander une précision supérieure à ses capacités.
Dans ton exemple, les nombres sont affichés avec 30 chiffres après la virgule alors que sa précision est de 15 chiffres significatifs, si tu te limites à 5 avant la virgule et 10 après (15 au total), et si tu utilises la précision affichée, ça fonctionne parfaitement !

Quand on utilise un outil, il faut apprendre à s'en servir correctement, c''est un peu comme le pèse-personne qui indique 75,3 kg avec une précision standard de 4%, soit + ou - 3 kg.
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
il a du mal à comprendre les nb divisés par 5
Non, il est dans l'impossibilité technique de les stocker avec exactitude en mémoire. Le mieux qu'on puisse faire pour 0,2 en binaire virgule flottante double précision c'est :
0,001100110011001100110011001100110011001100110011001101
qui vaut en fait 3602879701896397 × 2^-54
soit à peu près 0,20000000000000001110223024625157
Excel a toutefois peut être une lacune au sujet des valeurs de cellules munies d'un format monétaire on comptable. Il semblerait qu'il triche en les stockant aussi en Double au lieu de les stocker en Currency comme il devrait… Mais pas sûr que ça changerait grand chose… Ça ne change déjà rien vu de VBA d'ailleurs. Une donnée Currency est stockée comme un nombre entier de 64 bits valant 10000 fois sa valeur conventionnelle. Il est donc toujours exact sur 4 décimales maxi.

Edit: CPU : Central Processing Unit. C'est l'élément principal de votre ordinateur, au centre de la carte mère. Toutes les applications sont obligées d'utiliser, par des instructions machine adéquates, les moyens mis à leur disposition par cet organe. Excel ne peut échaper à cette règle.
 
Dernière édition:

Discussions similaires


Haut Bas