Java 如何设置千位分隔符并返回双精度值?

Java 如何设置千位分隔符并返回双精度值?,java,string,parsing,double,Java,String,Parsing,Double,我有设置千位分隔符的代码: DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US); DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); symbols.setGroupingSeparator(','); formatter.setDecimalFormatSymbols(symb

我有设置千位分隔符的代码:

    DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
    DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
    symbols.setGroupingSeparator(',');
    formatter.setDecimalFormatSymbols(symbols);
    String separator = formatter.format(20000);
问题是它返回字符串值,但我需要返回double,所以我尝试解析它:

Double.parseDouble(separator);
在此之后,我得到错误
java.lang.NumberFormatException:对于输入字符串:“20000”


如何从字符串结果中返回双精度值?

正如@khelwood在注释中提到的:使用


在哪一行出现该错误?您可以使用您创建的相同的
格式化程序来解析字符串<代码>格式化程序.parse(“20000”)。但是,如果您使用相同的方法执行所有这些操作,那么您没有完成任何事情。您是否尝试返回指定特定格式的
双精度
值?因为这是不可能的。实际数字没有分隔符。只有数字的字符串或打印形式才有这样的东西。@khelwood我举了20000个例子,它将从方法参数中获取值,所以实际上我有
formatter.parse(数字)。它不起作用,我没有错误,但我得到的是没有逗号的完整数字。@NemJov是的,因为它是一个
双精度
,数字数据类型没有格式信息,因为这对处理数字没有意义。如果要以特定格式显示数字,请使用
NumberFormat.format
。如果您有一个特定格式的数字的字符串表示形式,并想用它进行计算,请使用
NumberFormat.parse
将其转换为数字数据类型。@NemJov您只能在字符串中加逗号,不能加双精度。你所要求的是不可能的。@NemJov,也许发布你想要工作的实际代码,这样我们就能更好地了解你真正的问题是什么
double value = formatter.parse(separator).doubleValue();