Java-ROUND_HALF_DOENの丸めについて

BigDecimal(浮動小数点数の精度計算)を学習するときに、次のコード文字列をノックしました:
BigDecimal c = new BigDecimal( "18.8452")。SetScale(2、BigDecimal.ROUND_HALF_DOWN);

ROUND_HALF_DOWNは四捨五入され、小数点以下2桁が予約されています。最初に出力される値は18.84ですが、結果は18.85と出力されます。

丸めのために、破棄された値は正確に5以下である必要があることがわかりました。たとえば、18.8452、小数点以下2桁が保持され、破棄された値は0.0052で、0.0050より大きいため、切り上げられます。コードは次のとおりです。

//BigDecimal.ROUND_HALF_UP表示四舍五入
//BigDecimal.ROUND_HALF_DOWN也是五舍六入
//BigDecimal.ROUND_UP表示进位处理(就是直接加1)
//BigDecimal.ROUND_DOWN表示直接去掉尾数。
BigDecimal a = new BigDecimal("18.8450").setScale(2, BigDecimal.ROUND_HALF_DOWN);
BigDecimal c = new BigDecimal("18.8452").setScale(2, BigDecimal.ROUND_HALF_DOWN);
System.out.println(a);
System.out.println(c);

aは18.84を印刷
cは18.85を印刷

元の記事を公開6件 ・いい ね0件 訪問数85

おすすめ

転載: blog.csdn.net/ShaoWeiY/article/details/104703499