Séparateur décimal dans NumberFormat
Compte tenu des paramètres régionaux de java.texte.NumberFormat:
NumberFormat numberFormat = NumberFormat.getInstance();
Comment puis-je obtenir le caractère utilisé comme séparateur Décimal (si c'est une virgule ou un point) que numberformat? Comment puis-je modifier cette propriété, sans avoir à utiliser de nouvelles DecimalFormat(format)?
Grâce
Vous devez vous connecter pour publier un commentaire.
La classe helper DecimalFomatSymbols est ce que vous cherchez:
Pour vous mettre en valeur les symboles nécessaires:
EDIT: cette réponse n'est valable que pour
DecimalFormat
, et pas pourNumberFormat
est nécessaire dans la question. En tout cas, on peut aider l'auteur, je vais le laisser ici.DecimalFormat
ou unChoiceFormat
ou un sans-papiers JDK-privéNumberFormat
mise en œuvre ou ...new DecimalFormat().getDecimalFormatSymbols().getDecimalSeparator()
new DecimalFormatSymbols(Locale.getDefault(Locale.Category.FORMAT)).getDecimalSeparator()
if (nf instanceof DecimalFormat) { ... }
Je suis d'accord avec biziclop et Joachim Sauer que de jouer avec la virgule et les séparateurs et de faire ce travail manuellement, peut causer beaucoup de problèmes. L'utilisation du paramètre locale dans le
NumberFormat
méthode getInstance fait tout le travail pour vous automatiquement. Et vous pouvez facilement désactiver le mille séparateur de groupe, si vous le souhaitez.La suite de test junit méthode (qui passe) montre ce comportement basé sur l'anglais et l'allemand locale.
Si votre
NumberFormat
instance est uneDecimalFormat
, alors vous pouvez utilisergetDecimalFormatSymbols()
pour obtenir de l'information.En général, vous ne pouvez pas obtenir de l'information.
Pourquoi avez-vous besoin?
NumberFormat
pour les utilisateurs de paramètres régionaux en premier lieu? Jouer avec leNumberFormat
pour une région à l'tweak certains de ses paramètres pour l'adapter à une autre zone sonne comme une formidable recette pour un désastre!getInstance()
ceux. Sinon, utilisez legetInstance()
, mais de les utiliser correctement.