如何将Java中的“1234.56”解析为Double?
我在Java中解析“1234.56”时遇到问题,Java建议在数字格式中使用法语区域设置,但解析结果不正确。以下是我所拥有的:
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
# 1 楼答案
1,234.56
是而不是法语符号。(类似于1.234,56
is)将您的区域设置更改为
Locale.ENGLISH
、Locale.US
或类似的设置# 2 楼答案
法语地区的小数点用逗号表示。您需要使用美国地区:
或
Locale.ENGLISH
基于语言:# 3 楼答案
可以使用字符串替换和替换
","
来替换""
这很混乱,但你不需要解决语言环境问题