bigdecimal不保留小数怎么做
时间: 2023-08-10 14:23:50 浏览: 394
如果你想在使用 BigDecimal 的时候不保留小数,可以使用 `intValue()` 或 `longValue()` 方法将 BigDecimal 转换为整数类型。如果你想要直接将 BigDecimal 转换为不带小数的字符串,则可以使用 `stripTrailingZeros().toPlainString()` 方法。以下是一个例子:
```
BigDecimal bd = new BigDecimal("3.1415926");
int intValue = bd.intValue(); // intValue = 3
String plainString = bd.stripTrailingZeros().toPlainString(); // plainString = "3"
```
需要注意的是,使用 `intValue()` 或 `longValue()` 方法会直接截断小数部分,如果你需要四舍五入或者向上取整的话,可以使用 `setScale()` 方法设置小数位数和舍入规则,例如:
```
BigDecimal bd = new BigDecimal("3.1415926");
int roundedValue = bd.setScale(0, RoundingMode.HALF_UP).intValue(); // roundedValue = 3
```
这里使用了 `setScale()` 方法将小数位数设置为 0,并使用 `RoundingMode.HALF_UP` 舍入规则进行四舍五入。
相关问题
bigdecimal不保留小数点以后数怎么做
如果你想要使用 `BigDecimal` 类来进行高精度的浮点数运算,但是不需要保留小数点以后的位数,那么可以直接将保留位数设置为 0,例如:
```
BigDecimal bd = new BigDecimal(num);
bd = bd.setScale(0, RoundingMode.DOWN);
```
其中,第一个参数 `0` 表示不保留小数点后的位数,第二个参数 `RoundingMode.DOWN` 表示直接截断小数点后的位数,不进行四舍五入。这样,`BigDecimal` 对象 `bd` 中就只会保存整数部分,小数部分会被舍去。
bigdecimal做除法,并保留2位小数
您可以使用Java的BigDecimal类进行除法运算,并使用setScale方法来设置保留的小数位数。以下是一个示例代码:
```java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal dividend = new BigDecimal("10");
BigDecimal divisor = new BigDecimal("3");
BigDecimal result = dividend.divide(divisor, 2, BigDecimal.ROUND_HALF_UP);
System.out.println(result); // 输出结果:3.33
}
}
```
在上面的示例中,我们使用BigDecimal的divide方法进行除法运算,并传递了两个参数:被除数和除数。第三个参数是setScale方法设置的保留小数位数,这里设置为2。最后,使用System.out.println输出结果为3.33。