IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Erreur de soustraction


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut Erreur de soustraction
    Bonjour,

    C'est très étrange, avec le meme calcul on obtient des résultats différents

    exemple.
    1,003 (en A1)
    1,008 (en A2)
    =A1-A2 (en A3) le resultat est donc -0.005

    0.003 (en B1)
    0.008 (en B2)
    =A1-A2 (en B3) le resultat est donc -0.005

    Mais si vous conparez les deux résultats:
    =A3=B3 (en C2) vous obtiendrez FAUX

    Vous verrez le problème en modifiant le nombre de décimale.
    Avec 2 décimales:
    -0.00 (en A3) -0.01 (en B3)

    Avec 18 décimales:
    -0.004999999999999970 (en A3) -0.00500000000000000 (en B3)

    Il y a-t-il une solution à ce problème?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Function compenviron(x As Double, y As Double, Optional precision = 10 ^ -12) As Boolean
    compenviron = Abs(x - y) < precision
    End Function
    tu peux ainsi comparer deux grandeurs environ à la précision souhaitée

    dans ton exemple la fonction est vraie pour précision:=10^-15 ou non précisée et fausse pour précision:=10^-16

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut
    Merci Random,

    C'est effectivement une manière élégante de contourner le problème.

    Mais n' y a-t-il pas un patch Microsoft qui résolve ce problème?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    Aucun patch ne pourrait régler un tel problème.

    Voici ce que dit l’aide : Excel stocke et calcule 15 chiffres significatifs de précision.

    En arrière plan d’excel, il y a un programme (probablement du C) qui va traiter des variables.

    Les variables dans un langage donné ont des types définis associés à des niveaux de précision.

    Si tu prends vba

    Le type long occupe 4 octets et permet de représenter 4294967296 nombres différents avec exactitude.
    Le type single occupe 4 octets et permet de représenter une plage de 1.4 *10^45 nombres avec une approximation
    Si on voulait le même niveau de précision pour les 2 types il te faudrait 1.30385E*10^36 octets pour écrire un chiffre dans ton tableur il te faudrait disposer de 2.6077*10^24 disques durs de 500 giga

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut
    Merci pour ces précisions.

    Je comprend effectivement pourquoi il n'est pas possible de corriger ce genre de problème. Je pense que je vais donc utiliser ta formule de comparaison approximative.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur "#Valeur" sur simple opération de soustraction
    Par BERRACHED SAID dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/05/2013, 14h16
  2. Erreur de soustraction
    Par sahux dans le forum MATLAB
    Réponses: 4
    Dernier message: 19/08/2012, 18h42
  3. Erreur de soustraction
    Par e120650 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/02/2004, 17h10
  4. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo