Souci condition si...

Sly le globe trotter

XLDnaute Occasionnel
Bonsoir tout le monde,

J'ai un problème tout bête mais un peu farfelu.
En travaillant sur un fichier je me suis retrouvé sur un cas un peu tordu où une condition Si basique ne fonctionnait pas. En creusant, je n'arrive pas à trouver ce qui cloche.
Voici la situation que j'ai reproduit sur la version 2003 et 2007.
En A1, je tape 39.2
En A2, je tape 38.4
En A3, je tape la condition "=si(A1-A2>0.8;1;0)"

Magie, un 1 apparait en A3 ! Avez-vous déjà rencontré ce type de souci.

J'ai essayé pour d'autres valeurs autour de 39.2 et 38.4 en gardant toujours le même écart de 0.8... Faites le test, vous serez surpris.

Merci pour votre aide
 

tototiti2008

XLDnaute Barbatruc
Re : Souci condition si...

Bonjour Sly,

oui, j'avais déjà eu le cas.
J'ai peur qu'excel stocke ses nombre en Single et le Single a quelques soucis d'arrondis, fréquement. Je ne sais pas si c'est ça, c'est une supposition.

dans ce cas, il faut passer par des arrondis :

Code:
=SI(ARRONDI(A1-A2;1)>0,8;1;0)
 

Papou-net

XLDnaute Barbatruc
Re : Souci condition si...

Bonjour Sly le globe trotter,

Le phénomène que tu exposes est bien réel. Pour le contourner, tu peux modifier ta formule ainsi :

Code:
=SI(A1-A2>0,80000001;1;0)

Je ne saurais pas expliquer le comment du pourquoi, mais je sais que ce genre de problème est récurrent sur Excel.

Espérant t'avoir aidé.

Cordialement.

Damned, je me suis fait griller. Bonjour tototiti2008.
 
G

Guest

Guest
Re : Souci condition si...

Bonjour Tous,

En mettant =A1-A2 dans une cellule et en affichant en fomat nombre avec n 0 on obtient: 0,800000000000004000000000000000

Etonnant non?

Ce qui semblerait confirmer ce que dis TotoTiti bien que la littérature nous dit qu'excel conserve les nombres en double!!!!!

A+ à tous
 

jeanpierre

Nous a quitté
Repose en paix
Re : Souci condition si...

Bonjour Sly le globe, tototiti, Papou-net, Hasco,

Pour calculer tous les langages de programmation convertissent les valeurs en binaire. Calculs faits ils reconvertissent en valeurs ordinaires et c'est là qu'apparaîssent des résidus.

Il n'y a rien à faire d'autre que de le prévoir avec les arrondis.

Bonne journée.

Jean-Pierre
 

Sly le globe trotter

XLDnaute Occasionnel
Re : Souci condition si...

Salut Jean-Pierre,

Merci pour ces précisions techniques !
Dans ce cas là, pourquoi cette fonction arrondie n'est-elle pas intégrée directement dans les calculs ???

En tout cas, vous m'enlevez une belle épine du pied et m'évitez de belles boulettes :D

Bonne continuation
 

hoerwind

XLDnaute Barbatruc
Re : Souci condition si...

Bonjour, salut Hasco, Papou-net et tototiti2008,

Ce problème n'est pas propre à Excel, tous les tableurs le rencontre.

Les valeurs sont saisies en format décimal, les calculs sont établis par le processeur en format binaire et les résultats sont renvoyés en format décimal.
Cette double conversion peut provoquer une différence à partir de la 6ème décimale.

Edition : salut jeanpierre !
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12