Я использую BigDecimal для выполнения некоторых вычислений. Недавно я столкнулся с:
java.lang.ArithmeticException:
Non-terminating decimal expansion; no exact representable decimal result.
Ответ на эту проблему был опубликован здесь: ArithmeticException: " Неограничивающее десятичное расширение; нет точного представляемого десятичного результата "
Это означает, что существует некоторое деление с неограниченными десятичными знаками, поэтому BigDecimal говорит мне, что он не может точно вычислить результат. Чтобы этого избежать, я должен позвонить BigDecimal.setScale(SOMETHING, ROUNDING_MODE);
EDIT:
Теперь проблема заключается в том, чтобы установить SOMETHING в максимально возможное значение. Я мог бы использовать MathContext с точностью ниже UNLIMITED (MathContext(precision)
), но та же проблема возникает там. Там должно быть значение ниже
MathContext.UNLIMITED
...
Кто-нибудь знает, как это сделать?
Переместил мой второй вопрос на: Почему нет метода BigDecimal.setPrecision()?
Спасибо!
Оливер