将带有逗号/十进制的大数转换为 Double

sol*_*for 1 java

我的服务器返回一个字符串,如 2,100.00。

当我尝试将此 String 转换为 double 时,出现 NumberFormatException 异常。

Double.valueOf("2,100.00");
Run Code Online (Sandbox Code Playgroud)

我是否必须删除小数/逗号,转换并重新添加小数?

Mad*_*anu 6

您可以以十进制格式设置自定义分隔符

DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator('.');
symbols.setGroupingSeparator(',');
df.setDecimalFormatSymbols(symbols);
Number number = df.parse(str);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用number. 要将其转换为双倍,您可以执行number.doubleValue()