使用BigDecimal ROUND_HALF_EVEN舍入是否会出错输出?

时间:2015-06-24 08:26:50

标签: java rounding bigdecimal bankers-rounding

我遇到here描述的使用ROUND_HALF_EVEN舍入BigDecimal数字的问题。

我想要舍入到2位小数:

BigDecimal number1 = new BigDecimal("23.867995");
BigDecimal number2 = new BigDecimal("23.868");
Log.d("tag", number.setScale(2, BigDecimal.ROUND_HALF_EVEN) + ", " + );

Ouptut:

  

23.87

但数字 6 是偶数,所以应该是23.86或不是?

1 个答案:

答案 0 :(得分:1)

它甚至是圆形的一半,甚至不包括一切。如果一个数字在两个选项之间,它可以舍入到的数字,则它会转向偶数。如果它比另一个选项更接近一个选项,它会选择更接近的选项。