Подтвердить что ты не робот

Java BigDecimal может иметь запятую вместо точки?

У меня есть строковое значение, которое я хочу назначить BigDecimal. Когда я обновляю десятичное значение с номером типа 100.23, он отлично работает, но когда я обновляю его числом, например 100,23, код генерирует исключение. Почему это?

4b9b3361

Ответ 1

потому что вы попытались поместить число "," в число.

вы можете использовать этот код для разбора числа с запятой:

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

вы также должны использовать float или double, если нет определенной причины, по которой вы используете десятичную.

Ответ 2

Конструктор BigDecimal(String) документация содержит список всех допустимых форматов и символов. Обратите внимание, что , не входит в этот список.

Ответ 3

Если вы не можете быть уверены, что ваша строка имеет запятые или точки, вы можете использовать replace(char, char) из класса String. Например myString.replace(',', '.').