我有这个字符串:10,692,467,440,017.120(这是一个数量)。
我想将其解析为 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);
如果你正在构建一个支持 I18N 的应用程序,你应该使用 DecimalFormatSymbols(Locale)
还请记住,decimalFormat.parse
可能会抛出 ParseException
,因此您需要处理它(使用 try/catch)或抛出它并让您的另一部分程序处理它
关于java - 如何将字符串解析为 BigDecimal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231802/