116 votes

Point de force (".") comme séparateur décimal dans java

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 ma Locale (une virgule) tandis que je voudrais utiliser un point. Y a-t-il un moyen facile de le faire ?

26voto

Federico Giorgi Points 2460

Une solution plus radicale est de définir votre Locale tôt dans le main().

J'aime :

Locale.setDefault(new Locale("en", "US"));

13voto

VizGhar Points 1251

Beaucoup trop tard, mais comme d'autres mentionné ici est l'utilisation de l'échantillon de NumberFormat (et sa sous-classe DecimalFormat)

public static String format(double num) {
    DecimalFormatSymbols decimalSymbols = DecimalFormatSymbols.getInstance();
    decimalSymbols.setDecimalSeparator('.');
    return new DecimalFormat("0.00", decimalSymbols).format(num);
 }

12voto

Simon A. Eugster Points 1815

Vous pouvez passer une Locale supplémentaire à java.lang.String.format ainsi qu'à java.io.PrintStream.printf (e.g. System.out.printf()) :

import java.util.Locale;

public class PrintfLocales {

    public static void main(String args[]) {
        System.out.printf("%.2f: Default locale\n", 3.1415926535);
        System.out.printf(Locale.GERMANY, "%.2f: Germany locale\n", 3.1415926535);
        System.out.printf(Locale.US, "%.2f: US locale\n", 3.1415926535);
    }

}

Il en résulte ce qui suit (sur mon PC) :

$ java PrintfLocales
3.14: Default locale
3,14: Germany locale
3.14: US locale

Voir String.format dans l'API Java.

0voto

blong824 Points 1076

Vous pouvez utiliser NumberFormat et DecimalFormat.

Jetez un oeil à ce lien à partir de Java Tutoriels LocaleSpecific Formatage

La section intitulée Formatage sensible aux paramètres régionaux est ce dont vous avez besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X