Afficher un chiffre avec un point (JAVA)

Résolu
noviceEnJava -  
 noviceEnJava -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
À 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
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
 
Ca fonctionne!!

Merci beaucoup!
0
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122
 
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   Statut Membre Dernière intervention   4
 
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