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 :

Exception avec BigDecimal à l'aide..


Sujet :

avec Java

  1. #1
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut Exception avec BigDecimal à l'aide..
    Bonjour, voila j'ai un TP et je dois le rendre demain et j'ai une exception avec ce bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BigDecimal f1 = huiit.multiply(n); 
    		BigDecimal f11 = f1.add(uun);
    BigDecimal formule1 = quaatre.divide(f11);
    l'exception est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Je suis enregistré
    i'm waiting
    Exception in thread "Thread-1" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
    	at java.math.BigDecimal.divide(Unknown Source)
    	at fr.unice.miage.sysdis.Task.formulePI(Task.java:67)
    	at fr.unice.miage.sysdis.Task.execute(Task.java:41)
    	at fr.unice.miage.sysdis.Volunteer.run(Volunteer.java:81)
    	at java.lang.Thread.run(Unknown Source)
    Je sais qu'il dit que le résultat est indéterminé mais je sais pas comment régler ce problème, merci pour votre aide... Merci encore une fois...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    Bonjour,

    voila moi je ferais une approximation en passent par des double

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            BigDecimal un = new BigDecimal("1");
            BigDecimal troi = new BigDecimal("3");
     
            BigDecimal resultat = null;
            try {
                resultat = un.divide(troi);
            } catch (ArithmeticException ex) {
                // on calcul avec des double qui vont fair une aproximation
                double d = Double.parseDouble(un.toPlainString());
                double div = Double.parseDouble(troi.toPlainString());
                resultat = new BigDecimal(Double.toString(d/div));
            }
            System.out.println(resultat.toString());

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    bon j'ai lu la java doc après avoir répondu. ca ma paru bizard que cela ne soit pas prevue dans cette class

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BigDecimal formule1 = quaatre.divide(f11,MathContext.DECIMAL128);
    ce qui équivaut à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = un.divide(troi,128,BigDecimal.ROUND_HALF_EVEN);

  4. #4
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Merci beaucoup pour votre aide...

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

Discussions similaires

  1. [Calcul] difficulté avec BigDecimal
    Par dinver dans le forum Langage
    Réponses: 4
    Dernier message: 01/01/2006, 16h41
  2. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2005, 22h41
  3. Réponses: 2
    Dernier message: 14/02/2005, 14h26
  4. Réponses: 3
    Dernier message: 09/11/2004, 14h43
  5. INSO Filter : "USER-defined exception" avec ctx_do
    Par Wiztiti dans le forum Oracle
    Réponses: 2
    Dernier message: 01/06/2004, 16h14

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