问题描述
DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator(',');
formatter.setDecimalFormatSymbols(symbols);
String separator = formatter.format(20000);
问题是它返回String值,但是我需要返回double,所以我尝试解析它:
Double.parseDouble(separator);
此后,我得到错误java.lang.NumberFormatException: For input string: "20,000"
如何从字符串结果中返回双精度值?
解决方法
如@khelwood在评论中所述:使用NumberFormat.parse
double value = formatter.parse(separator).doubleValue();