Java BigDecimal可以用逗号代替点吗?

Jea*_*hhe 21 java decimal bigdecimal

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

No *_*ame 17

因为你试图把一个","放在一个数字中.

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

NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858")
Run Code Online (Sandbox Code Playgroud)

如果没有使用小数的特殊原因,你也应该使用float或double.

  • ","通常用来代替"." 在世界的某些地方 (3认同)
  • 你不应该使用float或double,除非你确定它是合适的.试试System.out.println(new BigDecimal(100.23d)); - 你可以而且有时会得到一分一秒的舍入错误. (2认同)

Kay*_*ayz 6

如果不确定字符串中是否包含逗号或点,则可以replace(char, char)从String类中使用。例如myString.replace(',', '.')

  • 如果您的字符串具有两个逗号和点,并且您不知道哪一个是分组字符和哪一个是小数点分隔符,那将不起作用。 (2认同)

Kev*_*sox 5

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