Force point (".") as decimal separator in java

I currently use the following code to print a double:

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

This works well, except that Java uses my Locale's decimal separator (a comma) while I would like to use a point. Is there an easy way to do this?


Solution 1:

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.

Solution 2:

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

Like:

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

Solution 3:

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);
 }