bigdecimal保留两位小数 不用四舍五入,直接舍弃
时间: 2023-11-17 09:04:21 浏览: 88
以下是使用BigDecimal保留两位小数并直接舍弃的方法:
```java
BigDecimal num = new BigDecimal("3.1415926");
num = num.setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(num); // 输出:3.14
```
在上述代码中,我们首先创建了一个BigDecimal对象num,并将其初始化为3.1415926。然后,我们使用setScale()方法将其保留两位小数,并将保留规则设置为ROUND_DOWN,即直接舍弃。最后,我们将结果打印出来,输出为3.14。
相关问题
bigdecimal保留两位小数不进行四舍五入,小数直接保留两位
答案:可以使用BigDecimal的setScale方法来设置保留小数位数并舍弃多余位数,代码示例如下:
BigDecimal decimal = new BigDecimal("3.14159");
decimal = decimal.setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(decimal);
这段代码会将3.14159保留两位小数并直接舍去多余位数,输出结果为3.14。注意在设置小数位数时,第一个参数表示要保留的位数,第二个参数表示舍入模式,ROUND_DOWN表示直接舍弃。
new BigDecimal四舍五入
BigDecimal是Java中用于处理高精度数值计算的类。在BigDecimal类中,可以使用setScale方法进行四舍五入操作。
setScale方法有两个参数:第一个参数是保留的小数位数,第二个参数是指定的舍入模式。舍入模式有以下几种:
- RoundingMode.UP:向远离零的方向舍入
- RoundingMode.DOWN:向接近零的方向舍入
- RoundingMode.CEILING:向正无穷方向舍入
- RoundingMode.FLOOR:向负无穷方向舍入
- RoundingMode.HALF_UP:四舍五入,如果舍弃部分大于等于0.5,则进位
- RoundingMode.HALF_DOWN:四舍五入,如果舍弃部分大于0.5,则进位
- RoundingMode.HALF_EVEN:银行家舍入法,四舍六入五成双
- RoundingMode.UNNECESSARY:不需要舍入,如果存在非零小数位,则抛出ArithmeticException异常
下面是一个示例代码,展示如何使用BigDecimal进行四舍五入:
```java
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimalExample {
public static void main(String[] args) {
BigDecimal number = new BigDecimal("3.14159");
BigDecimal roundedNumber = number.setScale(2, RoundingMode.HALF_UP);
System.out.println("原始数字:" + number);
System.out.println("四舍五入后的数字:" + roundedNumber);
}
}
```
输出结果为:
```
原始数字:3.14159
四舍五入后的数字:3.14
```