J'utilise actuellement le code suivant pour imprimer un double:
return String.format("%.2f", someDouble);
Cela fonctionne bien, sauf que Java utilise le séparateur décimal de mes paramètres régionaux (une virgule) alors que je voudrais utiliser un point. Y a-t-il un moyen facile de faire ceci?
java
formatting
double
dtech
la source
la source
Réponses:
Utilisez la surcharge
String.format
qui vous permet de spécifier les paramètres régionaux:Si vous ne formatez qu'un nombre - comme vous le faites ici - alors l'utilisation
NumberFormat
serait probablement plus appropriée. Mais si vous avez besoin du reste des capacités de formatage deString.format
, cela devrait fonctionner correctement.la source
Une solution plus radicale consiste à définir vos paramètres régionaux au début de main ().
Comme:
la source
Vous pouvez passer un Locale supplémentaire à java.lang.String.format ainsi qu'à java.io.PrintStream.printf (par exemple System.out.printf ()):
Il en résulte ce qui suit (sur mon PC):
Voir String.format dans l'API Java.
la source
out.printf((Locale)null, ...)
ouout.format((Locale)null, ...)
pour obtenir une représentation locale indépendante. (et il y a aussiLocale.ROOT
)Bien trop tard, mais comme d'autres l'ont mentionné, voici un exemple d'utilisation de
NumberFormat
(et de sa sous-classeDecimalFormat
)la source
DecimalFormatSymbols
et le réglage du séparateur doivent être effectués une fois, avant cette méthode.Vous pouvez utiliser NumberFormat et DecimalFormat.
Jetez un œil à ce lien à partir de Tutoriels Java Formatage local
La section intitulée Formatage sensible aux paramètres régionaux est ce dont vous avez besoin.
la source
J'ai eu le même problème ...
55.1
transformé en55,10
. Ma solution rapide (sale?) Est:String.format("%.2f", value).replaceAll(",",".");
la source