Force point (“.”) as decimal separator in java

后端 未结 7 732
一向
一向 2020-11-29 05:04

I currently use the following code to print a double:

return String.format(\"%.2f\", someDouble);

This works well, except that Java uses my

相关标签:
7条回答
  • 2020-11-29 05:18

    I had the same issue.. 55.1 transformed to 55,10. My quick (dirty?) fix is :

    String.format("%.2f", value).replaceAll(",",".");

    0 讨论(0)
  • 2020-11-29 05:19

    You can pass an additional Locale to java.lang.String.format as well as to 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);
        }
    
    }
    

    This results in the following (on my PC):

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

    See String.format in the Java API.

    0 讨论(0)
  • 2020-11-29 05:20

    A more drastic solution is to set your Locale early in the main().

    Like:

    Locale.setDefault(new Locale("en", "US"));
    
    0 讨论(0)
  • 2020-11-29 05:29

    Way too late but as other mentioned here is sample usage of NumberFormat (and its subclass DecimalFormat)

    public static String format(double num) {
        DecimalFormatSymbols decimalSymbols = DecimalFormatSymbols.getInstance();
        decimalSymbols.setDecimalSeparator('.');
        return new DecimalFormat("0.00", decimalSymbols).format(num);
     }
    
    0 讨论(0)
  • 2020-11-29 05:31

    Use the overload of String.format which lets you specify the locale:

    return String.format(Locale.ROOT, "%.2f", someDouble);
    

    If you're only formatting a number - as you are here - then using NumberFormat would probably be more appropriate. But if you need the rest of the formatting capabilities of String.format, this should work fine.

    0 讨论(0)
  • 2020-11-29 05:38

    Change the language, it worked for me.

    How to set eclipse console locale/language How to set eclipse console locale/language

    0 讨论(0)
提交回复
热议问题