bigdecimal.round_half_even
时间: 2023-03-20 22:07:18 浏览: 178
BigDecimal.round_half_even是一种舍入模式,也称为银行家舍入法。它的规则是:如果要舍弃的数字小于5,则直接舍去;如果要舍弃的数字大于5,则进位;如果要舍弃的数字等于5,则看5前面的数字是奇数还是偶数,如果是偶数则舍去,如果是奇数则进位。这种舍入模式可以避免舍入误差的累积,因此在金融计算等精度要求较高的场合经常使用。
相关问题
BigDecimal.ROUND_HALF_EVEN弃用
是的,BigDecimal.ROUND_HALF_EVEN已经被弃用。在Java 9中,它被替换为RoundingMode.HALF_EVEN。如果您使用的是Java 9或更高版本,则应使用RoundingMode.HALF_EVEN。以下是一个演示如何使用RoundingMode.HALF_EVEN的例子:
```java
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Example {
public static void main(String[] args) {
BigDecimal bd1 = new BigDecimal("2.5");
BigDecimal bd2 = new BigDecimal("2.0");
BigDecimal result = bd1.divide(bd2, 1, RoundingMode.HALF_EVEN);
System.out.println(result); // 输出:1.2
}
}
```
BigDecimal中的ROUND_HALF_EVEN已过时
在Java中,BigDecimal的ROUND_HALF_EVEN已被标记为过时方法,因为它可能会导致一些不合理的行为。ROUND_HALF_EVEN是一个四舍五入模式,它的规则是:如果要舍弃的数字恰好等于0.5,则舍入结果应该是最接近的偶数。这种舍入方式可以减少舍入误差,但也可能导致一些问题。例如,如果使用ROUND_HALF_EVEN对一个无限循环小数进行舍入,可能会导致错误的结果。
为了解决这些问题,Java 9 引入了一些新的舍入模式,包括ROUND_HALF_UP、ROUND_HALF_DOWN、ROUND_CEILING、ROUND_FLOOR等。这些新的舍入模式提供了更加灵活和精确的舍入方式,可以根据具体的需求进行选择。
阅读全文