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

Langage Java Discussion :

problème 22.72 - 12.72 retourne 9.99..


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de jeha
    Inscrit en
    Octobre 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 127
    Par défaut problème 22.72 - 12.72 retourne 9.99..
    bonjour,

    j'ai ce petit code qui doit retourner 10 mais j'ai comme résultat 9.999999999999998 !!!!!!!!!!!!!!!!!!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public static void main(String[] args) {
            // TODO code application logic here
             double amont= 22.72 - 12.72 ;
     
     
            System.out.println("Amont :"+amont );
        }
    merci pour votre aide et votre suggestion

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    C'est à cause de la représentation des floats. Tu trouveras surement ta réponse dans ce topic:
    http://www.developpez.net/forums/d34...-calcul-float/

  3. #3
    Membre confirmé
    Avatar de jeha
    Inscrit en
    Octobre 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 127
    Par défaut
    merci chef pour votre réponse, donc la solution est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        public static void main(String[] args) {
            // TODO code application logic here
     
            BigDecimal valeur1 = new BigDecimal("22.72");
            BigDecimal valeur2 = new BigDecimal("12.72");
     
            BigDecimal resSoustraction = valeur1.subtract(valeur2);
     
     
     
     
            System.out.println("Amount :"+resSoustraction );
        }

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ou alors, garder les floats (ou plutôt des double) et les faire afficher avec deux décimales maximum.

    Ou alors, calculer avec des ints et insérer une virgule avant les deux derniers chiffres à l'affichage.

    C'est quand même pas très pratique BigDecimal.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Avatar de jeha
    Inscrit en
    Octobre 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 127
    Par défaut
    Ou alors, garder les floats (ou plutôt des double) et les faire afficher avec deux décimales maximum.

    Ou alors, calculer avec des ints et insérer une virgule avant les deux derniers chiffres à l'affichage.

    C'est quand même pas très pratique BigDecimal.

    c'est quoi donc la solution si la valeur retourner est faux, le 10 n'est pas le 9.999999999 !!!!!

    y a t'il une autre solution pour ce probleme de calcule

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Si tu affiches l'arrondi à deux décimales, ça fera bel et bien 10.

    Tu as vraiment besoin d'une précision à 9 décimales ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/01/2010, 12h38
  2. Réponses: 5
    Dernier message: 29/05/2008, 10h05
  3. probléme dans une fonction qui retourne un data reader
    Par saraenim dans le forum Windows Forms
    Réponses: 32
    Dernier message: 28/04/2008, 21h53
  4. Réponses: 6
    Dernier message: 09/11/2007, 19h33
  5. Problème de nombre de ligne retournée
    Par dubidon dans le forum Langage SQL
    Réponses: 10
    Dernier message: 02/06/2007, 11h28

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