【发布时间】:2020-08-30 15:30:31
【问题描述】:
我有一个类似于“$1,234.00”的字符串。我需要将其转换为 BigDecimal 值。无法使用正常的 BigDecimal 转换方法来执行此操作,因为它会引发 NumberFormatException。有没有办法实现?
【问题讨论】:
-
您是否尝试删除美元符号和“,”?
标签: java string type-conversion bigdecimal
我有一个类似于“$1,234.00”的字符串。我需要将其转换为 BigDecimal 值。无法使用正常的 BigDecimal 转换方法来执行此操作,因为它会引发 NumberFormatException。有没有办法实现?
【问题讨论】:
标签: java string type-conversion bigdecimal
"$1,234.00"是一个格式化数字文本,所以你需要使用NumberFormat来解析数字。
特别是,您需要一个DecimalFormat,这样您就可以调用setParseBigDecimal(true) 方法,因为您需要一个BigDecimal 作为结果,否则它可能会返回一个Double。
DecimalFormat format = new DecimalFormat("¤#,##0.00", DecimalFormatSymbols.getInstance(Locale.US));
format.setParseBigDecimal(true);
BigDecimal number = (BigDecimal) format.parse(input);
【讨论】: