java - 如何将字符串解析为 BigDecimal?

标签 java string parsing bigdecimal decimalformat

我有这个字符串: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/

相关文章:

java - 不为空的正则表达式

c++ - C++:用另一个字母递归地替换一个字母中所有字母的实例

javascript - 在 JavaScript 中使用谓词函数进行匹配

java - 使用 Java 从 JSON 中提取名称/值对

java - 使用动态规划删除中间元素的三重乘积的最小总和

java - wtf.is.going.on 中的抽象方法foo(E) 无法直接访问super.foo(e) 用ANT 编译

java - 将 JScrollPane 添加到从 JPanel 扩展的类

java - 为什么 String.replaceAll() 不适用于此字符串?

javascript - JS 字符串连接编码问题

python - 在非常大的 HTML 文件上使用 BeautifulSoup - 内存错误?