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 :

affichage du point du Double dans une place bien détérminé


Sujet :

Langage Java

  1. #1
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut affichage du point du Double dans une place bien détérminé
    Bonjour ,

    j'ai un nombre Double , (10.0 , 11.0 , 32.56 , 9658.214 ,......) , mon probleme c'est que je ne dois affiché apré le point que un nombre bien spécifique , selon un nombre de décimal que je récupére :

    par exemple , si j'ai 12324.6 et le nombre de décimale est 3 , je dois affiché 123.246

    merci pour votre aide a l'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Avec une division entière par 10 ou 100 ou 1000 ou 0.1 etc selon le nombre de décimales et cela devrait marcher

  3. #3
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut
    j'ai esseié avec cette solution mais sa marche pas ,

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par mystro7200 Voir le message
    par exemple , si j'ai 12324.6 et le nombre de décimale est 3 , je dois affiché 123.246
    Ces deux nombres sont différents. Tu t'ais surement trompé, non ?
    Sinon, pour l'affichage, voir la javadoc java.text.DecimalFormat.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par mystro7200 Voir le message
    j'ai esseié avec cette solution mais sa marche pas ,
    On peut voir le code stp ?

  6. #6
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Ces deux nombres sont différents. Tu t'ais surement trompé, non ?
    Sinon, pour l'affichage, voir la javadoc java.text.DecimalFormat.


    si j'ai : 12324.6 et le nombre de decimale et 3

    je dois enlever le point : 123246 et de le rajouter a la position numero 3

    123.246

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par mystro7200 Voir le message
    si j'ai : 12324.6 et le nombre de decimale et 3

    je dois enlever le point : 123246 et de le rajouter a la position numero 3

    123.246
    12324.6*0.01 = 123.246, je ne vois pas où est le problème si on est uniquement dans le cadre d'un double

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Il n'y a pas trop moyen de faire ce que tu souhaites à cause de la précision des doubles : tu peux très bien recevoir ceci 123.24600000000000000000000000001 à cause des erreurs d'arrondi. Donc, comment décide-t-on de ce que tu désires utiliser ?

  9. #9
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut
    le probleme c'est que :12324.6*0.01 = 123.246 , le 0.0.1 n'est pas fixe a chaque fois j'ai un nombre de decimale spécifique

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par dingoth Voir le message
    Il n'y a pas trop moyen de faire ce que tu souhaites à cause de la précision des doubles : tu peux très bien recevoir ceci 123.24600000000000000000000000001 à cause des erreurs d'arrondi. Donc, comment décide-t-on de ce que tu désires utiliser ?
    Dans le cadre de division entière par un multiple de 10, il ne peut pas y avoir de problème de précision à ma connaissance.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par mystro7200 Voir le message
    le probleme c'est que :12324.6*0.01 = 123.246 , le 0.0.1 n'est pas fixe a chaque fois j'ai un nombre de decimale spécifique
    En fonction de ton nombre x en entrée, tu fais un multiplication par 10^x

  12. #12
    Membre régulier Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Points : 74
    Points
    74
    Par défaut
    j'ai abondoné cette piste parce que sa ne marche pas dans mon cas , j'ai opté pour une autre solution que je n'arrive pas a l'implanté ,

    c'est que je recupére mon champs double et je le converti en string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String montant = montantValide.toString();
    puis je recupére le nombre de décimale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbrDecimale = virementVO.getDeviseValide().getNbreDecDevise();
    et je parcoure cette chaine ,selon le point , je dois l'enlever et le rajouter dans la nouvelle place : si 123.0 et nbrDecimale=2 alors je dois avoir : 12.30

  13. #13
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 852
    Points : 22 869
    Points
    22 869
    Billets dans le blog
    51
    Par défaut
    Citation Envoyé par ep31 Voir le message
    Dans le cadre de division entière par un multiple de 10, il ne peut pas y avoir de problème de précision à ma connaissance.
    Il n'y a aucun rapport entre la precision des doubles et le fait de diviser par un multiple de 10. Ce probleme de division peut survenir n'importe quand et est lie a la precision telle qu'elle est definie dans la norme de stockage des nombre flottants et double. Un moyen d'eviter l'apparition de ce genre d'abberation a l'affichage (xx.000..0001 par exemple) est bien sur d'utiliser un formatteur de nombres. Ah oui et on n'est pas dans le cadre de la division entiere.

    Sinon, mystro7200, je ne pige toujours pas quel est le probleme avec des divisions sucessives par 10... tes explications ne sont pas tres claires sur le pourquoi du comment cela ne fonctionne pas.

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    je veux pas être méchant, mais je lit virementVO, j'en conclue logiciel financier. Ensuite je lit "double" et ça me fait un peu tiquer car des nombre en précision flottante là où, justement, on manipule spécifiquement des nombres à virgule fixe, c'est risquer les emmerdes par la suite. Enfin, je ne comprend toujours pas la logique de ta conversion 12345.6 -> 123.456, t'es occupé de nous dire que, finalement, la position de ta virgule n'a pas d'importance?? Perso si une virgule bouge sur mon salaire, c'est la différence entre pas comptant (voir pas comptant du tout) et heureux (voir déjà parti cacher l'argent en suisse). Parce que bon, toujours dans ta logique, 123456, 12345.6 et 12.3456 deviennent tous 123.456 ....

Discussions similaires

  1. Affichage d'un Double dans une JTable
    Par Brice22 dans le forum Composants
    Réponses: 1
    Dernier message: 16/03/2009, 16h38
  2. Réponses: 1
    Dernier message: 07/01/2006, 21h10
  3. [MySQL] Affichage de valeurs par selection dans une table
    Par Flushovsky dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/12/2005, 17h04
  4. [C/C++] afficher des doubles dans une message box
    Par lalaurie40 dans le forum MFC
    Réponses: 1
    Dernier message: 24/05/2005, 14h55
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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