BigDecimal.ROUND_HALF_EVEN弃用
时间: 2023-12-16 14:04:45 浏览: 38
是的,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
BigDecimal.round_half_even是一种舍入模式,也称为银行家舍入法。它的规则是:如果要舍弃的数字小于5,则直接舍去;如果要舍弃的数字大于5,则进位;如果要舍弃的数字等于5,则看5前面的数字是奇数还是偶数,如果是偶数则舍去,如果是奇数则进位。这种舍入模式可以避免舍入误差的累积,因此在金融计算等精度要求较高的场合经常使用。
BigDecimal ROUND
BigDecimal的ROUND是一个常量,用于指定舍入模式。
在Java的BigDecimal类中,有以下舍入模式常量可用:
1. ROUND_UP:向远离零的方向舍入,即向正无穷方向舍入。
2. ROUND_DOWN:向接近零的方向舍入,即向负无穷方向舍入。
3. ROUND_CEILING:向正无穷方向舍入。
4. ROUND_FLOOR:向负无穷方向舍入。
5. ROUND_HALF_UP:向最接近的整数舍入,如果正好在两个整数中间,则向上舍入。
6. ROUND_HALF_DOWN:向最接近的整数舍入,如果正好在两个整数中间,则向下舍入。
7. ROUND_HALF_EVEN:向最接近的整数舍入,如果正好在两个整数中间,则向最接近的偶数舍入。
8. ROUND_UNNECESSARY:不需要舍入,如果需要舍入则抛出异常。
这些常量可以与BigDecimal的setScale方法一起使用,以指定舍入模式和小数位数。例如:
```java
BigDecimal value = new BigDecimal("3.14159");
BigDecimal roundedValue = value.setScale(2, BigDecimal.ROUND_HALF_UP);
```
在上面的示例中,setScale方法将value的小数位数设置为2,并使用ROUND_HALF_UP模式进行舍入。