2012-03-26 14 views
2

どうすればよいですか正解 BigDecimalを最も近い値に丸めますか?例えばBigDecimalを最も近い整数値に丸める

1.2 --> 1 

1.5 --> 2 

1.6 --> 2. 

私は

BigDecimal val = new BigDecimal(1.5); 
System.out.println(val.setScale(0, RoundingMode.HALF_UP)) 

を試みたが、予想通り、これはまだ私には1. NOT 2を与えます。

これを正しく行う方法を知っている人は誰ですか?

おかげ

+4

[あなたの正確なコードの出力であるところ私は

が表示されません2私のためのideone](http://ideone.com/AoQnQ)、あなたがしていることが間違っている何か他のものがなければなりません。 – dasblinkenlight

+0

も私のために働いています。 – gorjusborg

+0

テストとして四捨五入する前に、小数点以下桁数を乗算して10を乗算します。あなたの例では、10を掛けます。これによって、setScaleで使用している数値が表示されます。 –

答えて

4
BigDecimal val = new BigDecimal(1.2); 
    System.out.println(val.setScale(0, RoundingMode.HALF_UP)); 
    val = new BigDecimal(1.5); 
    System.out.println(val.setScale(0, RoundingMode.HALF_UP)); 
    val = new BigDecimal(1.6); 
    System.out.println(val.setScale(0, RoundingMode.HALF_UP)); 

結果:問題は

+0

申し訳ありませんが、心配しないでください。問題は別の場所から来ていました。そして、はい、方法は正常に動作します。 –

関連する問題