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]Calcul - Infinity


Sujet :

Java

  1. #1
    Membre régulier Avatar de dinver
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 122
    Points : 110
    Points
    110
    Par défaut [Math]Calcul - Infinity
    Bonjour,

    Ayant un peu de temps libre et en naviguant sur le net j'ai trouvé des formules simples qui permettent de calculer PI avec précision. Voulant m'amuser, j'ai décidé d'écrire un progamme en Java. Malhereusement, malgré que la programmation est simple, je me suis trouvé devant deux petits soucis :
    1- Comment utiliser BigDecimal pour que le calcul soit exact en virgule floatante sachant que cette classe n'offre que les quatres opérations de base alors que moi je veux utiliser la fonction Puissance. Faut-il que je l'écrive tout seul sachant que j'ai besoin d'utiliser des puissances négatives ?
    2- Pour le moment, même si le calcu n'est pas aussi précis, j'ai décidé d'utiliser des variables de type float. Or, rapidement j'ai un affichage de type Infinity. Donc, si j'ai bien compris j'ai dépasse l'intervalle float. Alors, comment procéder pour pouvoir faire des calculs au-delà de cet intervalle ?

    Je suis preneur de toute idée qui peut me faire avancer.
    Je vous remercie par avance.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    pour aller un peu au delà passe par un double au lieu d'un float, sinon tu devras te coltiner les classes spécifiques telles que BigDécimale
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre régulier Avatar de dinver
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 122
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par sinok
    pour aller un peu au delà passe par un double au lieu d'un float, sinon tu devras te coltiner les classes spécifiques telles que BigDécimale
    Autant pour moi, c'est déjà en Double
    Sinon, pour l'affichage comment faire puisqu'il n'affiche que 16 chiffres après la virgule.

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    en BigDecimal alors

  5. #5
    Membre régulier Avatar de dinver
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 122
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par BiMouXeTTe
    en BigDecimal alors
    Je viens de dire que la classe BigDecimal n'offre pas la méthode pow càd exposant. Donc commment procéder ?
    En plus même pour l'affichage avec System.out.print je n'ai que 16 chiffres après la virgule comment faire pour afficher plus que ça

    merci pour l'aide

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Eh bien tu crées la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public BigDecimal pow(BigDecimal nb, int puis)
    {
        BigDecimal res = new BigDecimal(1);
        for (int i=0;i<puis;i++)
            res = res.multiply(nb);
        return res;
    }

  7. #7
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    il m'est avis que tu devrais relire un peu plus ta javadoc, car la méthode pow existe bien pour les BigDecimal

    BigDecimal pow(int n, MathContext mc)
    Returns a BigDecimal whose value is (this^n).
    de même pour le toString() (sont tu te sert implicitement pour l'affichage), il est décrit comment faire dans la javadoc pour changer le nombre de décimales

    http://java.sun.com/j2se/1.5.0/docs/...tml#toString()
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Sur la 1.4.2, elle n'existe que sur BigInteger, peut-être sur les suivantes cette méthode existe.

  9. #9
    Membre régulier Avatar de dinver
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 122
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par sinok
    il m'est avis que tu devrais relire un peu plus ta javadoc, car la méthode pow existe bien pour les BigDecimal

    BigDecimal pow(int n, MathContext mc)
    Returns a BigDecimal whose value is (this^n).
    de même pour le toString() (sont tu te sert implicitement pour l'affichage), il est décrit comment faire dans la javadoc pour changer le nombre de décimales

    http://java.sun.com/j2se/1.5.0/docs/...tml#toString()
    Merci pour l'aide
    Je vais essayé java 1.5

Discussions similaires

  1. [Math] Calcul 3D
    Par 0_Azerty_0 dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 11/10/2013, 13h46
  2. [math] calcul sur flottants
    Par r0d dans le forum C++
    Réponses: 6
    Dernier message: 29/10/2009, 09h57
  3. [Maths] Calcul de la matrice de projection
    Par HanLee dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 03/07/2007, 01h52
  4. [Math] Calcul de position de vecteur.
    Par Lucyberad dans le forum DirectX
    Réponses: 4
    Dernier message: 19/05/2007, 16h15
  5. [Maths] Calculs invariants à des transformations
    Par mathieu_t dans le forum Mathématiques
    Réponses: 16
    Dernier message: 26/04/2006, 18h50

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