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

C++ Discussion :

Erreur de test if(a==b)


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Erreur de test if(a==b)
    Salut,

    dans mon code, j'ai à un moment besoin d'un test du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (a==b){...}
    else {...}
    mes variables a et b sont de type double.
    Obtenant des erreurs, j'ai mis des cout un peu partout pour voir où c'en était. En fait, il arrive souvent que même lorsque a est effectivement égal à b, le test if ne reconnait pas l'égalité et passe au else, d'où foisonnement d'erreurs....

    Peut-il s'agir d'un problème de précision sur les double? Des idées?
    Merci!!!

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    comparé des doubles avec == peut-être risqué (la preuve)

    vérifie plutôt si la différence est < à un certain epsilon qui serait un seuil de précision
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    ok merci!
    ça va mieux en utilisant std::numeric_limits<float>::epsilon(). je vais m'en sortir comme ça!

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

Discussions similaires

  1. erreur si test de champs vide
    Par jlb59 dans le forum Langage
    Réponses: 5
    Dernier message: 09/05/2008, 17h27
  2. Surligner les champs en erreur après test
    Par Nicos77 dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2008, 16h20
  3. Erreur de test
    Par anis50 dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 24/10/2007, 03h51
  4. Erreur de Test Ogre sur VC++
    Par chebchoub dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 03/09/2007, 12h59
  5. message d'erreur sur test module
    Par Daniel MOREAU dans le forum Access
    Réponses: 5
    Dernier message: 23/11/2005, 20h19

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