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

后端 未结 7 1035
一向
一向 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: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.

提交回复
热议问题