I am having trouble parsing "1,234.56" in Java, a similar question recommend using French locale in number formatting, but it is parsing the result incorrectly. Here is what I have:
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234.56");
System.out.println(number.doubleValue()); // Should get 1234.56, got 1.234 instead
Number number = format.parse("1,234,567.89");
System.out.println(number.doubleValue()); // Should get 1234567.89
French locale has the decimal point represented by a comma. You'll need to use the US locale:
or
Locale.ENGLISH
based on the language:You could use string replacement and replace
","
for""
Its messy, but you dont need to solve locale.
1,234.56
is not French notation. (Something like1.234,56
is).Change your locale to
Locale.ENGLISH
,Locale.US
, or similar