我怎样才能parsing一个stringBigDecimal?
我有这个string:10,692,467,440,017.120(这是一个数额)。
我想parsing它到一个BigDecimal。 问题是我已经尝试了DecimalFormat和NumbeFormat都是徒劳的。 任何帮助?
尝试这个
// 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);  如果您正在构build支持I18N的应用程序,则应使用DecimalFormatSymbols(Locale) 
 另外请记住, decimalFormat.parse可以抛出一个ParseException所以你需要处理它(与try / catch)或抛出它,让你的程序的另一部分处理它 
尝试这个
  String str="10,692,467,440,017.120".replaceAll(",",""); BigDecimal bd=new BigDecimal(str); 
尝试正确的构造函数http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#BigDecimal(java.lang.String);
您可以直接使用string实例化BigDecimal;)
例:
 BigDecimal bigDecimalValue= new BigDecimal("0.5"); 
  BigDecimal提供了一个string构造函数。 你需要通过正则expression式或String filteredString=inString.replaceAll(",","")数字中的所有逗号String filteredString=inString.replaceAll(",","") 。 
 然后,您只需调用BigDecimal myBigD=new BigDecimal(filteredString); 
 您也可以创build一个NumberFormat并调用setParseBigDecimal(true) 。 然后parse(会给你一个BigDecimal而不用担心手动格式化。