BigDecimal ROUND
时间: 2023-11-04 10:52:16 浏览: 155
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模式进行舍入。
相关问题
BigDecimal ROUND_FLOOR
BigDecimal.ROUND_FLOOR是Java中BigDecimal类的一个常量,它表示向下取整。具体来说,它会将数字舍入为小于或等于给定数字的最大整数。如果数字本身已经是整数,则不进行舍入。以下是一个Java代码示例:
```java
import java.math.BigDecimal;
public class Example {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("3.14159");
BigDecimal num2 = new BigDecimal("-3.14159");
BigDecimal num3 = new BigDecimal("5");
System.out.println(num1.setScale(2, BigDecimal.ROUND_FLOOR)); // 输出:3.14
System.out.println(num2.setScale(2, BigDecimal.ROUND_FLOOR)); // 输出:-3.15
System.out.println(num3.setScale(2, BigDecimal.ROUND_FLOOR)); // 输出:5.00
}
}
```
在上面的示例中,我们使用setScale()方法将BigDecimal对象舍入到小数点后两位,并使用BigDecimal.ROUND_FLOOR常量指定舍入模式。第一个示例中,数字3.14159被舍入为3.14,因为它小于或等于3.14。第二个示例中,数字-3.14159被舍入为-3.15,因为它小于-3.14。第三个示例中,数字5被保留为5.00,因为它已经是整数。
bigdecimal.ROUND_DOWN与 BigDecimal.ROUND_HALF_UP
这两个常量都是Java中BigDecimal类中的舍入模式。
BigDecimal.ROUND_DOWN表示向零方向舍入(截取小数部分),即直接舍去不进行四舍五入,例如:
```
new BigDecimal("3.1415926").setScale(3, BigDecimal.ROUND_DOWN); // 输出3.141
```
BigDecimal.ROUND_HALF_UP表示四舍五入,若舍去部分>=0.5则进位,否则不进位,例如:
```
new BigDecimal("3.1415926").setScale(3, BigDecimal.ROUND_HALF_UP); // 输出3.142
```
需要注意的是,这两个常量都是常用的舍入模式,但在特定的场景下,可能需要使用其他的舍入模式来满足需求。
阅读全文