DecimalFormat (), проблема с русскими компьютерами - PullRequest
0 голосов
/ 15 октября 2018

У меня есть BigDecima l, который я конвертирую в String, чтобы внести в него некоторые изменения.В конце я пытаюсь преобразовать его обратно в BigDecimal, используя эту часть кода:

DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setParseBigDecimal(true);
Amt = (BigDecimal) decimalFormat.parse(amount);

В конце я ожидаю, что мой BigDecimal будет таким, например, "135.40", и он работает, но на русском компьютере я получаю "135.00".Я не понимаю, почему это ошибка или что-то в этом роде?

1 Ответ

0 голосов
/ 15 октября 2018

Десятичный разделитель в русском языке: ,.Вот почему число усекается до ., что недопустимо для русской локали.

decimalFormat.parse("135,40") должно дать вам желаемое большое десятичное число.

Если вы хотите проанализировать числа с помощью ., измените локаль DecimalFormat:

NumberFormat formatter = NumberFormat.getNumberInstance(Locale.US);
DecimalFormat decimalFormat = (DecimalFormat)formatter;
...