用逗号作为小数分隔符解析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
提交
取消
