HALF_EVEN i javaの丸めの問題をデバッグしようとしましたが、 のように、予期しない結果が377.35であり、Java Math RoundingMode.HALF_EVENが予期しない結果を表示する
誰かが行動を説明するのに役立つことができますか?あなたが最初の場所でdouble
に渡していて、それはすべてあなたがしたくない丸めないため
public static void main(String[] args) {
System.out.println((new BigDecimal(0.3450)).setScale(2, RoundingMode.HALF_EVEN).toPlainString());
//prints 0.34
System.out.println((new BigDecimal(77.3450)).setScale(2, RoundingMode.HALF_EVEN).toPlainString());
//prints 77.34
System.out.println((new BigDecimal(377.3450)).setScale(2, RoundingMode.HALF_EVEN).toPlainString());
**//prints 377.35 ?????**
//anything larger than 256 is printing .35
System.out.println((new BigDecimal(255.3450)).setScale(2, RoundingMode.HALF_EVEN).toPlainString());
//prints 255.34
System.out.println((new BigDecimal(256.3450)).setScale(2, RoundingMode.HALF_EVEN).toPlainString());
**//prints 256.35 ?????**
}
@JonnyHenly私はそれが同じ質問だと思います。ありがとう。 – Yonggang