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 :

[debutant] limiter nombre apres virgule


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 51
    Points : 31
    Points
    31
    Par défaut [debutant] limiter nombre apres virgule
    apres avoir calculer une moyenne sur des doubles j'aimerais n'avoir que 2 chiffres apres la virgule...on fait comment??
    j'ai regarde sur les NumberFormat mais

    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Salut!

    J'ai le même problème, mais il se trouve que j'aimerai que la partie des exposants ne soit affichée que lorsque c'est nécessaire.
    Je m'explique :
    - mon format actuel est le suivant : 3 chiffres pour la partie entière, 2 pour la partie décimale et 2 pour les exposants => "###.##E00"
    - si la valeur est comprise entre -1000 et 1000, j'aimerai que la partie "E00" ne soit pas affichée.
    - si la valeur est supérieure ou égale à 1000, on affiche la partie "E00"


    Un tel mécanisme est-il déjà implémenté ou alors je dois me débrouiller tout seul?

    Merci d'avance!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 151
    Points : 144
    Points
    144
    Par défaut
    Rien ne t'empeche de créer toi même ton pattern en fonction des valeurs

    Ca donnerait un truc comme ça :

    String pattern = "###.##";

    if(nombre >= 1000){
    pattern+="E00";
    }

    Ps : ou avec les stringbuffer si tu veux faire mieux

  5. #5
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Ouais, c'est bien ce que je pensais : y'a pas de syntaxe toute faite qui gère ce cas.
    Parce que ça va m'obliger à faire un test pour chaque valeur, et crois-moi, y'en a un paquet, donc ça risque de ralentir mon appli...

    Mais bon si y'a que ça, on fera avec...

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 151
    Points : 144
    Points
    144
    Par défaut
    je ne garantis pas qu'il existe rien ailleurs, c'était juste la première idée qui me venait en tête

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par seiryujay
    Un tel mécanisme est-il déjà implémenté ou alors je dois me débrouiller tout seul?
    Pas à ma connaissance, et je ne vois rien de tel dans l'API de DecimalFormat...

    Citation Envoyé par seiryujay
    Parce que ça va m'obliger à faire un test pour chaque valeur, et crois-moi, y'en a un paquet, donc ça risque de ralentir mon appli...
    Il vaut mieux éviter de recréer à chaque fois le pattern et l'objet DecimalFormat et ca devrait être bon...

    En utilisant deux Pattern de la manière suivante je ne pense pas que la différence d'exécution soit sensible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        private static final NumberFormat SIMPLE_FORMAT = new DecimalFormat("###.##");
        private static final NumberFormat EXPONENT_FORMAT = new DecimalFormat("###.##E00");
     
        public static String format(double d) {
            NumberFormat nf;
            if (-1000.0 < d && d < 1000.0) {
                nf = SIMPLE_FORMAT;
            } else {
                nf = EXPONENT_FORMAT;
            }
            return nf.format(d);
    	}
    a++

Discussions similaires

  1. Nombres après virgule
    Par ismaili86 dans le forum C#
    Réponses: 2
    Dernier message: 02/04/2010, 14h26
  2. [JpGraph] Afficher nombre après virgule dans un diagramme
    Par fey dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/12/2008, 00h59
  3. Limiter les nombres après la virgule
    Par lebigboss dans le forum Langage
    Réponses: 3
    Dernier message: 24/07/2007, 12h39
  4. Comment limiter le nombre apres la virgule?
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2006, 23h12
  5. Limiter nombre de chiffre apres la virgule
    Par MaxiMax dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/08/2005, 13h02

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