BigDecimal.ROUN
时间: 2024-05-31 20:05:16 浏览: 16
`BigDecimal.ROUND`是Java中用于规定BigDecimal如何进行舍入的一个常量。该常量定义了以下舍入操作:
- `ROUND_UP`: 向远离零的方向舍入(即使是正数也会舍入为比其大的数),例如4.5将被舍入为5,而-4.5将被舍入为-5;
- `ROUND_DOWN`: 向靠近零的方向舍入,例如4.5将被舍入为4,而-4.5将被舍入为-4;
- `ROUND_CEILING`: 向正无穷大方向舍入,例如4.5将被舍入为5,而-4.5将被舍入为-4;
- `ROUND_FLOOR`: 向负无穷大方向舍入,例如4.5将被舍入为4,而-4.5将被舍入为-5;
- `ROUND_HALF_UP`: 如果舍弃部分>= 0.5,则舍入操作采用ROUND_UP,否则采用ROUND_DOWN,例如4.5将被舍入为5,4.1将被舍入为4;
- `ROUND_HALF_DOWN`: 如果舍弃部分> 0.5,则舍入操作采用ROUND_UP,否则采用ROUND_DOWN,例如4.5将被舍入为4,4.51将被舍入为5;
- `ROUND_HALF_EVEN`: 如果舍弃部分的最后一位数是奇数,则采用ROUND_HALF_UP,否则采用ROUND_HALF_DOWN,例如4.5将舍入为4,5.5将舍入为6;
- `ROUND_UNNECESSARY`: 如果进行四舍五入操作后会丢失任何数据,则抛出ArithmeticException。
以下是一个Java代码示例,演示如何使用`ROUND_HALF_UP`进行四舍五入操作:
```java
import java.math.*;
public class Main {
public static void main(String[] args) {
BigDecimal bd = new BigDecimal("123.456");
// 四舍五入保留2位小数
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bd); // 输出:123.46
}
}
```