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
Version imprimable
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
Je te propose l'équation suivante :
:faq: Comment convertir un nombre en chaîne formatée ?
+
DecimalFormat
=Code:
1
2 DecimalFormat df = new DecimalFormat("#.##"); System.out.println(df.format(mon_nombre));
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:DecimalFormat fmt = new DecimalFormat("#,##0.00#");
Est-ce valable:
?Code:
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'Citation:
Envoyé par seriousme
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 :koi:Citation:
Envoyé par aragorn185
C'est bon ca fonctionne
thanks
Bien vu:Citation:
C'est valable mais le problème c'est que si mon_nombre est égale à un nombre du genre 0.15 cela affichera ',15'
Code:DecimalFormat df=new DecimalFormat("#.##");
Non car:Code:
1
2 DecimalFormat df = new DecimalFormat("#.##"); System.out.println(df.format(mon_nombre));
donc:Citation:
toujours 2 chiffres après la virgule même si c'est .00
Code:DecimalFormat df = new DecimalFormat("#.00");
Il permet de spécifier la taille des groupes.Citation:
Par contre ton pattern est plutôt bizarre
:oops: Au temps pour moi :oops:
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
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
Le résultat est bien un float, mais les opérandes ne le sont pas :).
essaie plutôt 3f/2f
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..
Ben, peu importe, ce qui compte c'est de les caster en float avant de faire une opération sur eux.
Mais pourquoi le "not a number" , pourtant je divise bien 2 nombres entre eux?
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.
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
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.
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:
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; }