java string to bigdecimal




我如何解析String到BigDecimal? (3)

這個問題在這裡已有答案:

我有這個字符串:10,692,467,440,017.120(這是一個金額)。

我想將它解析為BigDecimal。 問題是我嘗試了DecimalFormat和NumbeFormat都是徒勞的。 有幫助嗎?


BigDecimal提供了一個字符串構造函數。 您需要通過正則表達式或String filteredString=inString.replaceAll(",","")從數字中刪除所有逗號。

然後你只需調用BigDecimal myBigD=new BigDecimal(filteredString);

您還可以創建NumberFormat並調用setParseBigDecimal(true) 。 然後parse(將給你一個BigDecimal而不用擔心手動格式化。



嘗試這個

// 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.parse可以拋出ParseException因此您需要處理它(使用try / catch)或拋出它並讓程序的另一部分處理它





decimalformat