我有一个我想要分配给BigDecimal的字符串值。当我使用类似100.23
的数字更新小数值时,它可以正常工作,但是当我使用类似100,23
的数字更新它时,代码会抛出异常。那是为什么?
答案 0 :(得分:15)
因为您试图在数字中加上“,”。
您可以使用此代码用逗号解析数字:
NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858")
如果没有使用小数的特殊原因,你也应该使用float或double。
答案 1 :(得分:5)
BigDecimal(String)
构造函数documentation列出了所有有效的格式和字符。请注意,,
未包含在此列表中。
答案 2 :(得分:2)
如果您无法确定String是否包含逗号或点,则可以使用String类中的replace(char, char)
。例如myString.replace(',', '.')
。