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 :

Artithmétique sur les flottants


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2002
    Messages : 162
    Par défaut Artithmétique sur les flottants
    Bonjour,

    J'ai un petit peu de mal à faire des comparaisons sur des nombres flottants. Je sais que ça ne se fait pas comme avec des entiers et qu'il faut utiliser des epsilon est autres astuces, mais je ne connais pas précisément les méthodes à utiliser.

    Par exemple, pour savoir si p1 est supérieur ou égal à p2, j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = ((p1 - p2) >= 0) || (abs(p1 - p2) <= std::numeric_limits<double>::epsilon());
    Ca semble me donner le résultat souhaité, mais est-ce correct ? Est-ce simplifiable ?
    Auriez-vous quelques bons liens sur ce sujet ?

    Merci

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Oui, c'est simplificable, à mon avis. Mets simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p1-p2>-std::numeric_limits<tonType>::epsilon()*p2
    J'utilise une version d'epsilon mise à l'échelle par rapport à p2 car la définition d'epsilon est la plus grande valeur telle que 1.+epsilon = 1.

Discussions similaires

  1. Avoir tous les flottants sur la page de gauche
    Par denber dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 0
    Dernier message: 26/01/2010, 19h01
  2. Incompréhension sur les types flottants
    Par shadeoner dans le forum Débuter
    Réponses: 3
    Dernier message: 22/01/2009, 16h24
  3. Question sur les flottants
    Par Gruik dans le forum C
    Réponses: 52
    Dernier message: 23/03/2007, 13h53
  4. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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