Ответ 1
Используйте RoundingMode.DOWN или RoundingMode.FLOOR.
BigDecimal newValue = myBigDecimal.setScale(2, RoundingMode.DOWN);
После серии вычислений в моем коде у меня есть BigDecimal
со значением 0.01954
Затем мне нужно умножить этот BigDecimal
на 100
, и я хочу, чтобы вычисленное значение было 1.95
Я не хочу выполнять округление вверх или вниз, я просто хочу, чтобы любые значения за пределами двух десятичных знаков были усечены
Я попробовал установить масштаб на 2, но затем я получил ArithmeticException
заявив, что округление необходимо. Как установить масштаб без указания округления?
Используйте RoundingMode.DOWN или RoundingMode.FLOOR.
BigDecimal newValue = myBigDecimal.setScale(2, RoundingMode.DOWN);
Используйте переопределение setScale, которое включает RoundingMode:
value.setScale(2, RoundingMode.DOWN);