如何在不舍入的情况下截断大十进制数

在我的代码中进行了一系列计算后,我有一个 with 值BigDecimal0.01954

然后我需要将其乘以,我希望计算出的值是BigDecimal1001.95

我不希望执行任何向上或向下舍入,我只希望任何超过两个小数位的值被截断

我尝试将比例设置为2,但后来我说四舍五入是必要的。如何在不指定舍入的情况下设置比例?ArithmeticException


答案 1

使用 RoundingMode.DOWNRoundingMode.FLOOR

BigDecimal newValue = myBigDecimal.setScale(2, RoundingMode.DOWN);

答案 2

使用包含舍入模式的 setScale 覆盖:

value.setScale(2, RoundingMode.DOWN);