bigdecimal 小数只保留两位,不四舍五入
时间: 2023-07-14 15:05:37 浏览: 168
要在 Java 中使用 BigDecimal 保留小数点后两位,而不进行四舍五入,可以使用 setScale() 方法并指定 RoundingMode.DOWN 作为舍入模式。
以下是一个示例代码:
```java
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal number = new BigDecimal("3.14159");
BigDecimal roundedNumber = number.setScale(2, RoundingMode.DOWN);
System.out.println(roundedNumber); // 输出 3.14
}
}
```
在上述代码中,我们创建了一个 BigDecimal 对象 number,然后使用 setScale() 方法将小数点后保留两位,并使用 RoundingMode.DOWN 设置为舍入模式,最后得到了保留两位小数的结果 roundedNumber。
注意,setScale() 方法返回的是一个新的 BigDecimal 对象,因为 BigDecimal 是不可变对象。因此,在实际应用中你可能需要将结果赋值给一个新的 BigDecimal 对象或者覆盖原来的对象。
相关问题
bigdecimal除法保留两位小数四舍五入
BigDecimal是Java中提供的一种高精度计算的类,它可以用来解决浮点数计算中精度丢失的问题。在使用BigDecimal进行除法操作时,为了保留两位小数并进行四舍五入,可以使用setScale方法来设置小数点后保留的位数,并同时设置RoundingMode为HALF_UP表示进行四舍五入。以下是一个简单的例子:
BigDecimal a = new BigDecimal("10");
BigDecimal b = new BigDecimal("3");
BigDecimal c = a.divide(b, 2, RoundingMode.HALF_UP);
System.out.println(c);
这个例子中,先创建了两个BigDecimal对象a和b,分别表示被除数和除数。然后使用divide方法进行除法运算,并将结果保留两位小数并进行四舍五入,得到的结果保存在c变量中。最后使用System.out.println输出结果。运行结果为3.33,符合我们所要求的保留两位小数并进行四舍五入的结果。
总的来说,利用BigDecimal的setScale方法设置小数点保留位数和RoundingMode为HALF_UP即可完成BigDecimal除法的保留两位小数四舍五入。
bigdecimal相乘保留两位小数四舍五入
以下是使用BigDecimal相乘并保留两位小数四舍五入的示例代码:
```java
BigDecimal num1 = new BigDecimal("12.345");
BigDecimal num2 = new BigDecimal("6.789");
BigDecimal result = num1.multiply(num2).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(result); // 输出:83.65
```
在这个例子中,我们首先创建了两个BigDecimal对象num1和num2,然后使用multiply()方法将它们相乘。接下来,我们使用setScale()方法将结果保留两位小数并进行四舍五入,最后将结果打印出来。
阅读全文