web-dev-qa-db-ja.com

丸めなしでBigDecimalを切り捨てる方法

コードで一連の計算を行った後、値が0.01954BigDecimalがあります

次に、このBigDecimal100で乗算する必要があり、計算された値が1.95になることを望みます

切り上げまたは切り捨ては行いません。小数点以下2桁を超える値は切り捨てたいだけです。

スケールを2に設定しようとしましたが、丸めが必要であるというArithmeticExceptionが表示されました。丸めを指定せずにスケールを設定するにはどうすればよいですか?

32
DJ180

RoundingMode.DOWN または RoundingMode.FLOOR を使用します。

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

RoundingModeを含むsetScaleオーバーライドを使用します。

value.setScale(2, RoundingMode.DOWN);
8
user1676075