Doubles, commas and dots

android, decimal, java

Solution

Use one of the other constructors of DecimalFormat:

new DecimalFormat("#.#", new DecimalFormatSymbols(Locale.US))

And then try and parse it using both separators.

Problem

I'm making an Android Java program which is taking double values from the user. If I run the program on the computer, it works great because of the locale of my computer, EN_UK. But when I run it on my mobile phone with FI_FI locale, it won't work. I know the reason: In UK, people use dot as decimal separator but here in Finland, the decimal separator is comma. ``` DecimalFormat df = new DecimalFormat("#.#"); Double returnValue = Double.valueOf(df.format(doubleNumber)); ``` When I'm using comma, it says `java.lang.NumberFormatException: Invalid double: "1234,5"`. How can I make it work with them both, comma and dot?

Original source