Java BigDecimal类型的数据,怎么获取他的整数和小数
时间: 2024-09-27 20:17:34 浏览: 45
Java小数点的问题1
在Java中,`BigDecimal` 类型用于精确的十进制算术运算,它包含了完整的数值部分(整数和小数)。如果你想要提取 `BigDecimal` 的整数部分(截断到最接近的整数),可以使用 `divide()` 或者 `trunc()` 方法配合 `Math.floor()` 或 `Math.ceil()` 函数。以下是获取整数部分的方式:
```java
BigDecimal bd = new BigDecimal("123.456");
// 获取向下取整后的整数
int integerPart = bd.divide(BigDecimal.ONE, RoundingMode.FLOOR).intValue();
// 或者直接使用 truncate 方法
int integerPartTruncated = bd.truncate().intValue();
```
要获取小数部分,你可以从原始值中减去整数部分,再除以10的相应次幂:
```java
// 获取小数部分
BigDecimal decimalPart = bd.subtract(new BigDecimal(integerPart + ""));
```
如果你想得到固定精度的小数部分,可以先确定所需的位数,然后使用 `stripTrailingZeros()` 方法去除多余的零:
```java
// 获取指定小数位数的小数部分
String decimalStr = bd.stripTrailingZeros().toPlainString();
```
阅读全文