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

avec Java Discussion :

Soustraction de float et perte de précision


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 8
    Par défaut Soustraction de float et perte de précision
    Bonjour,


    Lors d'une soustraction de deux float, je perd de la précision après ma virgule.

    En effet, lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Float cinqMillion = (float)5000000.0;
    Float moins = (float)1149.8;
    Float reste = cinqMillion - moins;
    System.out.println("Resultat de la soustraction = "+reste);
    Le résultat affiché est de : 4998850.0 et non 4998850.2

    J'ai vraiment besoin de garder cette précision, sauriez vous d'où peut provenir ce problème ?

    Merci de vos réponses,


    -Xou-

  2. #2
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    salut, utilise les doubles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Double cinqMillion = 5000000.0;
    		Double moins = 1149.8;
    		Double reste =cinqMillion - moins;
    		System.out.println("Resultat de la soustraction = "+reste);

  3. #3
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Le codage des nombres flottants à ses limites, dans ton cas, utiliser un double résoudra effectivement ton problème car le double a une plus grande capacité que les float mais ceci n'empêchera pas le problème de se reproduire si tu fais le même genre de calcul sur des nombres encore plus grand...

  4. #4
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    exact ! pour ne pas avoir de problèmes, et si tu as besoin de faire de gros calculs utilise les BigDecimal

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/02/2013, 16h24
  2. BCP out - in, perte de précision avec option -c ?
    Par dbaprod dans le forum Adaptive Server Enterprise
    Réponses: 2
    Dernier message: 17/07/2009, 14h19
  3. Réponses: 3
    Dernier message: 06/06/2008, 14h35
  4. Réponses: 3
    Dernier message: 01/08/2007, 12h49
  5. Réponses: 6
    Dernier message: 02/08/2006, 14h07

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