Я писал некоторые конвертеры единиц измерения с использованием BigDecimals, и я столкнулся с ситуацией, когда мне приходилось умножать число на дробно-периодическое число.
В большинстве случаев точность достаточно хорошая, но допустим, что у нас есть уравнение типа:
BigDecimal.valueOf(90)
.multiply(BigDecimal.valueOf(10)
.divide(BigDecimal.valueOf(90), 6, RoundingMode.HALF_UP))
Обычно это равняется 10, однако из-за округления мы получим 9.999999 ...
Есть ли элегантный способ реализовать это, не имея условия if, определяющего, когда дробь может быть вырезана?