Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de séparateur décimal

1 réponse
Avatar
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.

1 réponse

Avatar
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.


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

Cordialement.

Pierre