数値を丸めるには、次のコードを使用します。
public static roundBd(BigDecimal bd){
BigDecimal result1 = bd.setScale(0, RoundingMode.HALF_UP);
return result1;
}
- 入力 1.50 --> 出力 2
- 入力 1.499 --> 出力 1
最初の結果は私にとっては問題ありませんが、2 番目の結果は私が期待したものではありません。1.499 の場合でも、出力 2 に含めたいと思います (詳細: 最初に 1.499 を 1.50 に丸め、次に 1.5 に丸め、最後に 2 に丸めます)。
しかし....
BigDecimal bd = new BigDecimal("1.499"); // I'd like to round it to 2
BigDecimal result1 = bd.setScale(2, RoundingMode.HALF_UP); // result1 == 1.50
BigDecimal result2 = bd.setScale(1, RoundingMode.HALF_UP); // result2 == 1.5
BigDecimal result3 = bd.setScale(0, RoundingMode.HALF_UP); // result3 == 1