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

Java Discussion :

[Math]Addition de deux float : résultat faux !!!


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut [Math]Addition de deux float : résultat faux !!!
    Bonjour,

    Dans un de mes programmes, je fais l'addition de deux float de la manière suivante : soit deux float a et b. Je veux à chaque tour d'une boucle augmenter la valeur de a :

    Pas sorcier jusque là. Mais la ou je m'étonne, c'est que ce "bête" calcul me donne de faux résultats :

    ex : 86.4 + 1.3 = 87.700005 !!!
    134.9 + 14.2 = 149.09999 !!!!

    Voyez-vous d'où peut me venir ce résultat ?

    Merci d'avance.

    ToCToF

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    bonjour,

    il y a déjà eu une question à ce sujet il n'y a pas si longtemps. Fais une recherche sur le forum. Pour information, la précision des float est limitée à 6 ou 7 chiffres significatifs. Si tu arrondis tes résultats, ça ira déjà mieux. Due à la représentation interne utilisée, la plupart des nombres décimaux n'ont pas de représentation exacte en float (par exemple 1/10).

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 31
    Points
    31
    Par défaut
    bonjour,


    d'abord trouve le nombre théorique de digit garanti par float (java language specification), ensuite il y a des chances que tu vois que les résultats arrondis à ce nombre de digits théorique, soit juste.

    (si tel est le cas, l'explication vient de considération sur le module de calcul en virgule flottante, on pourra détailler alors)


    cordialement

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 99
    Points : 82
    Points
    82
    Par défaut
    Salut ,

    Sujet déjà traité :

    http://www.developpez.net/forums/vie...light=#1905524

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    OK.

    Merci pour vos réponses rapides et désolé d'avoir reposer une question qui avait déjà été traitée ! Faut croire que je n'ai pas les yeux en face des trous ce matin.

    Il est temps que j'aille me coucher...

    Bonne nuit à tous !!

    ToCToF

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

Discussions similaires

  1. Comparaison de deux float
    Par MysticKhal_0 dans le forum C
    Réponses: 5
    Dernier message: 14/09/2012, 01h08
  2. addition de deux variables numeriques
    Par faxeur dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/01/2007, 11h47
  3. Addition entre deux requêtes
    Par tazmania dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/10/2006, 17h17
  4. addition de deux champs et resultat dans un troisième
    Par reventlov dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/03/2006, 15h30
  5. [jsp] addition entre deux valeurs recupérées en Java
    Par LESOLEIL dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 07/06/2005, 13h19

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