Erreur de calcul aberrante

Résolu
touroul Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   -  
touroul Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour le forum

Depuis le temps que je touche à Excel, jamais vu un truc aussi fou.
Je soustrais 2 cellules, 12,3 - 12,1.
Le résultat n'est pas 0,2, mais 

https://transfert.free.fr/kcApIx8


Windows / Firefox 146.0

A voir également:

5 réponses

Pierr10 Messages postés 14169 Date d'inscription   Statut Modérateur Dernière intervention   5 567
 

Bonsoir

Que vous ayez affiché 12,3 et 12,1 avec un très grand nombre de décimales est sans importance.

Par contre vous affichez la différence avec 22 décimales, si je ne me suis pas trompé en les comptant. 
Ça n'a aucun intérêt puisque Excel fait ses calculs avec une précision de 15 décimales. 
Et c'est précisément la 15ème décimale qui est fausse (1 au lieu de 0).

Donc il n'y a pas de souci ; ne demandez pas à Excel ce qu'il ne peut vous donner.
 


2
Nain_Porte_Quoi Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   18
 

Hello,

ben oui, un ordinateur ne travaille qu'en binaire, donc en binaire ça donne

1. La partie entière : 12
12 / 2 = 6 (reste 0)
6 / 2 = 3 (reste 0)
3 / 2 = 1 (reste 1)
1 / 2 = 0 (reste 1)
donc 12 en binaire = 1100 

2. La partie décimale : pour convertir une décimale, on multiplie par 2 et on garde la partie entière.

Pour 0,3 :
0,3 * 2 = 0,6
0,6 * 2 = 1,2
0,2 * 2 = 0,4
0,4 * 2 = 0,8
0,8 * 2 = 1,6
0,6 * 2 = 1,2 (On retombe sur le cycle précédent...)

donc 0,3 en binaire = 0,0100110011001... (à l'infini)

Pour 0,1 :
0,1 * 2 = 0, 2
0,2 * 2 = 0,4
0,4 * 2 = 0,8
0,8 * 2 = 1,6
0,6 * 2 = 1,2
0,2 * 2 = 0, 4 (Le cycle recommence ici...)

donc 0,1 en binaire = 0,0001100110011... (à l’infini)

donc 
12,3 = 1100.0100110011001100110011001100110011...
12,1 = 1100.0001100110011001100110011001100110...

Vous pouvez demander à Excel de calculer en fonction de ce que vous voyez à l'écran.
Fichier, Options, onglet Options avancées, dans la partie "Lors du calcul de ce classeur", cochez Définir le calcul avec la précision au format affiché.

Attention : ça modifie définitivement la précision des données saisies.

0
touroul Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   16
 

Bonjour NPQ & Pierre

Merci beaucoup pour vos réponses !

Je ne connaissais pas ce mode de calcul binaire d'Excel, maintenant c'est plus clair.

J'ai donc les explications, mais ça me pose quand même problème.

Je ne vais pas pouvoir changer le mode de calcul selon la suggestion de NPQ, le fichier étant utilisé sur tous les PCs du parc.

Je vous montre ici pourquoi ça change ma conclusion :

https://transfert.free.fr/ZpEt2Vi


Lorsque différence est bien de 0,2 ou moins, la conclusion est "Pas de différence", mais au delà, avec le "1" en quinzième décimale, la conclusion passe à "Différence significative".
Je peux éventuellement passer par des arrondis, mais c'est dommage ...
Encore merci

0
Nain_Porte_Quoi Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   18
 

"Je ne vais pas pouvoir changer le mode de calcul selon la suggestion de NPQ, le fichier étant utilisé sur tous les PCs du parc."

Ben si, c'est par fichier que ça change et ça permet d'éviter les pouièmes qui trainent derrière et qu'on ne vois pas. Si tout est formaté avec 2 chiffres après la virgule ça simplifie les calculs et évite les aberrances du genre 

10 / 3 = 3.33

19 / 3 = 6.66 

somme des 2 : 9.67 au lieu de 9.66 à cause de l'arrondi d'affichage

0
danielc0 Messages postés 2081 Date d'inscription   Statut Membre Dernière intervention   256
 

Bonjour,

En D8 :

=ARRONDI(C3-D3;5)

Daniel


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
touroul Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   16
 

Bonjour NPQ, Daniel

@ NPQ : non, je ne peux définitivement pas faire de tels arrondis. L'idée n'était pas mauvaise, mais si tu joues avec le nombre de décimales sur le moment, tu les perds définitivement.
Exemple : 3,1234 : tu le formates en 0 décimales, puis tu reveins en 4 décimales : le 1234 est perdu.
Je vais opter pour la proposition de Daniel.

Merci à tous les deux.

0