四捨五入
double や float は浮動小数点の為、誤差が生じてしまいます。
Math#round を利用して四捨五入しようとしても 0 に近い方向に丸めるため期待した値にならない場合があります。
Java で正確に四捨五入を実現したい場合 java.util.BigDecimal を使わなければなりません。
丸めモードは ROUND_HALF_UP を指定します。
ソース記述例
BigDecimal dec = new BigDecimal("0.5");
System.out.println(dec.divide(new BigDecimal(1), 0,
BigDecimal.ROUND_HALF_UP));
出力結果
1
|