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