如何将字符串解析为大十进制?

我有这个字符串:10,692,467,440,017.120(这是一个金额)。

我想将其解析为大十进制。问题是我尝试了DecimalFormat和NumbeFormat都徒劳无功。


答案 1

试试这个

// Create a DecimalFormat that fits your requirements
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(',');
symbols.setDecimalSeparator('.');
String pattern = "#,##0.0#";
DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols);
decimalFormat.setParseBigDecimal(true);

// parse the string
BigDecimal bigDecimal = (BigDecimal) decimalFormat.parse("10,692,467,440,017.120");
System.out.println(bigDecimal);

如果您正在构建支持 I18N 的应用程序,则应使用DecimalFormatSymbols(Locale)

还要记住,可以抛出一个,所以你需要处理它(使用尝试/捕获)或抛出它,让程序的另一部分处理它decimalFormat.parseParseException


答案 2

试试这个

 String str="10,692,467,440,017.120".replaceAll(",","");
 BigDecimal bd=new BigDecimal(str);