Rundungsmodus mit BigDecimal in Java

Der folgende Code, der verwendetRoundingMode.HALF_EVEN,

BigDecimal value1 = new BigDecimal("4.5");
value1=value1.setScale(0, RoundingMode.HALF_EVEN);

BigDecimal value2 = new BigDecimal("6.5");
value2=value2.setScale(0, RoundingMode.HALF_EVEN);

System.out.println(value1+"\n"+value2);

zeigt4 und6 beziehungsweise. Es scheint mir, dass es angezeigt werden sollte5 und7 jeweils weil die Ziffer links vom verworfenen Bruchteil (in diesem Fall 5) istungerade. In diesem Fall führt esRoundingMode.HALF_UP

Und im Falle vonRoundingMode.HALF_UP, RoundingMode.UP wird ausgeführt, wenn der verworfene Bruchteil> = 0,5 ist (was wahr ist), andernfallsRoundingMode.DOWN ist durchgeführt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage