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.