How to format Double with dot?

前端 未结 3 600
挽巷
挽巷 2020-12-24 01:39

How do I format a Double with String.format to String with a dot between the integer and decimal part?

String s = String.format(\"%.2f\", price)         


        
相关标签:
3条回答
  • 2020-12-24 02:15

    If it works the same as in PHP and C#, you might need to set your locale somehow. Might find something more about that in the Java Internationalization FAQ.

    0 讨论(0)
  • 2020-12-24 02:19

    String.format(String, Object ...) is using your JVM's default locale. You can use whatever locale using String.format(Locale, String, Object ...) or java.util.Formatter directly.

    String s = String.format(Locale.US, "%.2f", price);
    

    or

    String s = new Formatter(Locale.US).format("%.2f", price);
    

    or

    // do this at application startup, e.g. in your main() method
    Locale.setDefault(Locale.US);
    
    // now you can use String.format(..) as you did before
    String s = String.format("%.2f", price);
    

    or

    // set locale using system properties at JVM startup
    java -Duser.language=en -Duser.region=US ...
    
    0 讨论(0)
  • 2020-12-24 02:20

    Based on this post you can do it like this and it works for me on Android 7.0

    import java.text.DecimalFormat
    import java.text.DecimalFormatSymbols
    
    DecimalFormat df = new DecimalFormat("#,##0.00");
    df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.ITALY));
    System.out.println(df.format(yourNumber)); //will output 123.456,78
    

    This way you have dot and comma based on your Locale

    Answer edited and fixed thanks to Kevin van Mierlo comment

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