用逗号作为小数分隔符解析Double的最佳方法?以下是导致Exception:String p="1,234";Double d=Double.valueOf(p); System.out.println(d);有没有更好的方法来解析"1,234"得到1.234超过:p = p.replaceAll(",",".");?
3 回答

守着星空守着你
TA贡献1799条经验 获得超8个赞
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);Number number = format.parse("1,234");double d = number.doubleValue();

心有法竹
TA贡献1866条经验 获得超5个赞
,
NumberFormat nf = NumberFormat.getInstance(Locale.FRANCE);nf.parse(p);
java.text.DecimalFormat
DecimalFormat df = new DecimalFormat();DecimalFormatSymbols symbols = new DecimalFormatSymbols();symbols.setDecimalSeparator(',');symbols.setGroupingSeparator(' ');df.setDecimalFormatSymbols(symbols);df.parse(p);

aluckdog
TA贡献1847条经验 获得超7个赞
public double parseDecimal(String input) throws ParseException{ NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.getDefault()); ParsePosition parsePosition = new ParsePosition(0); Number number = numberFormat.parse(input, parsePosition); if(parsePosition.getIndex() != input.length()){ throw new ParseException("Invalid input", parsePosition.getIndex()); } return number.doubleValue();}
添加回答
举报
0/150
提交
取消