Problème de séparateur décimal

Le
ChP
Bonsoir à toutes et à tous,

Pour écrire un nombre flottant dans un JTextAerea, j'utilise la syntaxe
suivante :

txtMonTexte.setText(String.format("%3.1f", monNombre));

ce qui me met une virgule "," en tant que séparateur décimal et comme on
est en France, cela me convient parfaitement.

Le problème est que lorsque je veux transformer le contenu de mon
JTextArea en nombre, en utilisant :


String t = monTexte.getText();
try {
monNombre = Double.valueOf(t).doubleValue();
//utilisation de ce nombre
} catch (NumberFormatException e) {
if (t.isEmpty())
monNombre = 0;
else
Toolkit.getDefaultToolkit().beep();
}

et ben ça plante car "Double.valueOf(t).doubleValue();" attend
apparemment un "." et non une ",".

Comment faites-vous pour gérer cela ? J'ai bien vu l'utilisation de
"Locale" pour la conversion de nombre en chaîne, mais pas l'inverse.

Merci de votre aide.

Pierre.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ChP
Le #228124
Bonsoir à toutes et à tous,

Pour écrire un nombre flottant dans un JTextAerea, j'utilise la syntaxe
suivante :

txtMonTexte.setText(String.format("%3.1f", monNombre));

ce qui me met une virgule "," en tant que séparateur décimal et comme on
est en France, cela me convient parfaitement.

Le problème est que lorsque je veux transformer le contenu de mon
JTextArea en nombre, en utilisant :


String t = monTexte.getText();
try {
monNombre = Double.valueOf(t).doubleValue();
... //utilisation de ce nombre
} catch (NumberFormatException e) {
if (t.isEmpty())
monNombre = 0;
else
Toolkit.getDefaultToolkit().beep();
}

et ben ça plante car "Double.valueOf(t).doubleValue();" attend
apparemment un "." et non une ",".

Comment faites-vous pour gérer cela ? J'ai bien vu l'utilisation de
"Locale" pour la conversion de nombre en chaîne, mais pas l'inverse.

Merci de votre aide.

Pierre.


J'ai trouvé, je n'avais pas utilisé les bons mots-clé pour la recherche.
Il faut utiliser la classe "NumberFormat".

Cordialement.

Pierre

Publicité
Poster une réponse
Anonyme