Modo de arredondamento com BigDecimal em Java

O seguinte código que usaRoundingMode.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);

exibe4 e6 respectivamente. Parece-me que deveria mostrar5 e7 respectivamente, porque o dígito à esquerda da parte fracionária descartada (que é 5 neste caso) éímpar. Neste caso, ele executaRoundingMode.HALF_UP

E em caso deRoundingMode.HALF_UP, RoundingMode.UP é executada quando a parte fracionária descartada é> = 0.5 (o que é verdadeiro), caso contrárioRoundingMode.DOWN é desempenhado.

questionAnswers(1)

yourAnswerToTheQuestion