Afficher un chiffre avec un point (JAVA)

Résolu/Fermé
noviceEnJava - Modifié par noviceEnJava le 19/04/2012 à 22:12
 noviceEnJava - 20 avril 2012 à 12:57
Bonjour,

Dans un programme j'ai besoin d'afficher des double puis de les récupérer modifiés ou non.
Mon problème : Au moment de me les écrire en texte java me met des virgules (3,45) sauf que pour lui un double s'écrit avec un point (3.45) donc quand je récupère le texte dans mes TextField j'ai une exception NumberFormatException...

Comment faire pour lui dire de mettre des points au moment d'écrire les double??

Merci beaucoup!

A voir également:

3 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 avril 2012 à 22:22
À quel moment tu obtiens les virgules ? Car normalement Java est cohérent, s'il affiche des points, il attend des points, et s'il affiche des virgules il attend des virgules !
Tu dois probablement utiliser des méthodes non compatibles pour avoir ce genre d'erreur.

Sinon, il faut regarder dans la classe NumberFormat
0
noviceEnJava
19 avril 2012 à 23:38
Je suis d'accord avec toi que c'est bizarre!
Quelques précisions :

j'utilise une méthode pour acfficher un solde que je met ensuite dans un JTextField
ma méthode :

private double soldeInit; 
//ensuite le constructeur donne sa valeur a soldeInit
public double renvoyerSoldeInit(){ return soldeInit; }


le code pour le JTextField:
DecimalFormat df = new DecimalFormat("0.00");
modifSolde = new JTextField(df.format(b.renvoyerSoldeInit()));


et la mon solde est écrit avec une virgule dans mon TextField donc quand je fais
solde = Double.parseDouble(modifSolde.getText());


j'ai l'exception...
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 avril 2012 à 23:44
En effet, tes méthodes ne sont pas compatibles ! Si tu utilises le DecimalFormat dans un sens, il faut l'utiliser également en sens inverse pour rester cohérent !

solde = df.parse(modifSolde.getText()).doubleValue();
0
noviceEnJava
20 avril 2012 à 12:57
Ca fonctionne!!

Merci beaucoup!
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
20 avril 2012 à 01:00
Bonjour,

Je ne sais pas pour la forme des nombres, mais si on parle du côté des chaines des caractères (dans vos champs JTextFeild), il est possible d'utiliser replace:

solde = Double.parseDouble(modifSolde.getText().replace(",", "."));
-1
freew Messages postés 172 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 25 mai 2012 4
20 avril 2012 à 01:14
extension (","," .") );
t'as oublié la CLASS *
reformule
extension replace
private double soldeInit;
//ensuite le constructeur donne sa valeur a soldeInit
public double renvoyerSoldeInit(){ return soldeInit; }
sa donne :
private double soldeInit;
//ensuite le constructeur donne sa valeur a soldeInit
public double renvoyerSoldeInit()
{
return soldeInit; }
solde = Double.parseDouble(modifSolde.getText().
{
replace(",", ".")
}
solde = Double.parseDouble(modifSolde.getText(solde = Double.parseDouble(modifSolde.getText ()
}
(replace(",", ".")));));
}
une boucle demie iso
c'est une technique ,si s'affiche erreur remplace la sequance avec une fonction interne avec le point et le virgule
0