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 :

[float] 2 chiffres après la virgule


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 138
    Points : 45
    Points
    45
    Par défaut [float] 2 chiffres après la virgule
    Bonjour,
    Dans mon programme d'édition de facture j'utilise des float pour les calcul. Cependant il me faut toujours 2 chiffres après la virgule même si c'est .00 comment faire?
    thanks

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Je te propose l'équation suivante :

    Comment convertir un nombre en chaîne formatée ?

    +

    DecimalFormat

    =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DecimalFormat df = new DecimalFormat("#.##");
    System.out.println(df.format(mon_nombre));
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je crois qu'il veut toujours deux chiffres après la virgule donc il devrait peut être utilisé un DecimalFormat avec un autre pattern du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DecimalFormat fmt = new DecimalFormat("#,##0.00#");

  4. #4
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Est-ce valable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DecimalFormat df = new DecimalFormat(".##");
    System.out.println(df.format(mon_nombre));
    ?
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Citation Envoyé par seriousme
    Est-ce valable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DecimalFormat df = new DecimalFormat(".##");
    System.out.println(df.format(mon_nombre));
    ?
    C'est valable mais le problème c'est que si mon_nombre est égale à un nombre du genre 0.15 cela affichera ',15'
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Citation Envoyé par aragorn185
    Je crois qu'il veut toujours deux chiffres après la virgule donc il devrait peut être utilisé un DecimalFormat avec un autre pattern du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DecimalFormat fmt = new DecimalFormat("#,##0.00#");
    J'ai bien compris qu'il voulait deux chiffres après la virgule, et ce que j'ai donné marche très bien. Par contre ton pattern est plutôt bizarre
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 138
    Points : 45
    Points
    45
    Par défaut
    C'est bon ca fonctionne
    thanks

  8. #8
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    C'est valable mais le problème c'est que si mon_nombre est égale à un nombre du genre 0.15 cela affichera ',15'
    Bien vu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DecimalFormat df=new DecimalFormat("#.##");
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  9. #9
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DecimalFormat df = new DecimalFormat("#.##");
    System.out.println(df.format(mon_nombre));
    Non car:
    toujours 2 chiffres après la virgule même si c'est .00
    donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DecimalFormat df = new DecimalFormat("#.00");
    Par contre ton pattern est plutôt bizarre
    Il permet de spécifier la taille des groupes.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  10. #10
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Au temps pour moi
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  11. #11
    Membre habitué Avatar de Epica84
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 164
    Points : 188
    Points
    188
    Par défaut Re
    Bonjour,

    Je relance un peu le sujet afin de savoir s'il est possible d'écrire en ligne de code SQL le float avec 2 chiffre après la virgule?

    Cordialement Christophe
    ARLES, du 02 au 05 Avril 2010, Féria de Pâques.

  12. #12
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Bonjour,

    j'ai dans mon appli une fonction qui divise 2 variables entre elles, mais lors de mon calcul, si je prend par exemple 3/2, j'obtiens 1.00 alors que je souhaiterai obtenir 1.50...
    pour tant ma variable résultat est bien float !

    Merci

  13. #13
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Le résultat est bien un float, mais les opérandes ne le sont pas .

    essaie plutôt 3f/2f
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Bonjour,
    oui j'avais essayé mais lorsque je passe mes ( i, i2 ) de INT a FLOAT mes jOptionPane ne fonctionne plus, ils veulent imperativement du INT dans leur attributs.
    Car j'utilise à certains moments les opérations dans une fenêtre à part.

    EDIT : c'est bon j'ai réussi, c'etait le choix du showMessageDialog qui n'était pas adéquat ( quel misère a config ce truc ! )...

    Donc pour le moment, je n'ai plus de résultat, j'ai "NaN" pour les divisions..

  15. #15
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Ben, peu importe, ce qui compte c'est de les caster en float avant de faire une opération sur eux.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Mais pourquoi le "not a number" , pourtant je divise bien 2 nombres entre eux?

  17. #17
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Peut-être une division de zéro par zéro... ?

    Je comprends pas trop tes problématiques de GUI, j'en fais peu et je n'ai jamais eu de mal à adapter les exemples.
    ... Si quelqu'un d'autre comprend mieux ?

    Quoiqu'il en soit, pour que 3 divisé par 2 fasse 1,5 ; il faut qu'au moins l'un des deux soit float ou double. Ce qui peut se faire en castant l'un des deux par exemple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  18. #18
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    J'ai fais des tests avec pleins de valeurs différentes, tout le temps "NaN"...
    et j'ai déja gérer la condition si les deux valeurs sont = 0, division impossible...
    bref en ce qui concerne les opérandes elles sont toutes deux float, j'ai même essayé double rien a faire..
    Mais merci de ton temps !
    Je vais continuer a me documenter

  19. #19
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Note que tu nous dis tout ça, mais j'ai pas vu de code montrant d'où viennent ces float, ni comment tu divises l'un par l'autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  20. #20
    Membre actif Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Points : 278
    Points
    278
    Par défaut
    Tu as raison, j'avais oublié..
    Bon j'ai fait un condensé(je peux mettre tout le code, mais vous allez me tuer!), initialisation des variables et la méthode d'opération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class Calculatrice extends JFrame {
     
     
    	private 	JTextField field1;
    	private 	float i, i2, action;
       	String 		a, b, c;
     
     
     
     
    //...
    float   resultat = 0;
     
    				switch (action)  {
    				case 1: 
    					resultat = i+i2;
     
    					break;
    				case 2:
    					resultat = i-i2;
     
    					break;
    				case 3: 
    					resultat = i*i2;
     
    					break;
    				case 4: 
    					 resultat = i/i2;
     
     
    				default:
     
    					break;
    				}

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Float et affichage de 3 chiffres après la virgule sans arrondi
    Par Lolitaaa dans le forum Général Java
    Réponses: 3
    Dernier message: 20/05/2011, 11h59
  2. Réponses: 4
    Dernier message: 11/08/2009, 18h23
  3. Tronquer un float (n chiffres apres la virgule)
    Par franck06 dans le forum Langage
    Réponses: 8
    Dernier message: 16/06/2009, 18h58
  4. Réponses: 2
    Dernier message: 24/06/2008, 17h19
  5. Réponses: 4
    Dernier message: 06/12/2007, 21h23

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