28

我有一个要分配给 BigDecimal 的字符串值。当我用类似的数字更新十进制值时100.23,它可以正常工作,但是当我用类似100,23代码的数字更新它时会引发异常。这是为什么?

4

3 回答 3

19

因为您试图在数字中添加“,”。

您可以使用此代码解析带逗号的数字:

NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858")

如果没有特殊原因使用小数,您还应该使用浮点数或双精度数。

于 2013-09-10T08:49:07.250 回答
7

如果您不能确定您的 String 是否有逗号或点,您可以replace(char, char)从 String 类中使用。例如myString.replace(',', '.').

于 2013-09-10T08:56:50.000 回答
5

构造BigDecimal(String)函数文档列出了所有有效的格式和字符。请注意,,不包含在此列表中。

于 2013-09-10T08:55:05.783 回答