BigDecimal 去小数点
时间: 2023-10-17 10:25:04 浏览: 173
如果您想要将一个 BigDecimal 对象去掉小数点,可以使用 BigDecimal 的 intValue() 或 longValue() 方法将其转换为整数或长整数。例如:
```
BigDecimal decimal = new BigDecimal("1234.5678");
int intValue = decimal.intValue(); // intValue = 1234
long longValue = decimal.longValue(); // longValue = 1234
```
请注意,这样做会截断小数部分,如果您需要对小数部分进行四舍五入或者其他操作,请使用 BigDecimal 的 round()、setScale() 等方法。
相关问题
BigDecimal去除小数点后的零
您可以使用 BigDecimal 的 stripTrailingZeros 方法来去除小数点后的零。这个方法会返回一个新的 BigDecimal 对象,它表示与原对象相等的数值,但是没有尾部的零。
下面是一个示例代码:
```java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal number = new BigDecimal("10.200");
BigDecimal strippedNumber = number.stripTrailingZeros();
System.out.println("原始数值: " + number);
System.out.println("去除尾部零后的数值: " + strippedNumber);
}
}
```
输出结果将是:
```
原始数值: 10.200
去除尾部零后的数值: 10.2
```
注意,stripTrailingZeros 方法不会改变原始 BigDecimal 对象的值,而是返回一个新的对象。所以在使用时,您需要将返回的新对象赋值给一个变量。
double 用 BigDecimal 保留小数点后两位
`double` 类型的数据在进行精度运算时可能会丢失一些信息,特别是在处理浮点数时存在舍入误差。如果你需要精确地保留小数点后的位数,可以使用 Java 中的 `BigDecimal` 类,它是一个任意精度的十进制数。
将 `double` 转换为 `BigDecimal` 并保留两位小数的操作示例如下:
```java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
double dValue = 3.141592653589793;
BigDecimal bdValue = new BigDecimal(Double.toString(dValue));
bdValue = bdValue.setScale(2, BigDecimal.ROUND_HALF_UP); // 设置小数点后两位,四舍五入
System.out.println(bdValue); // 输出:3.14
}
}
```
在这个例子中,首先将 `double` 转换成字符串,然后创建 `BigDecimal` 对象,接着调用 `setScale` 方法设置小数位数并指定舍入策略(`ROUND_HALF_UP`表示四舍五入)。最后,`bdValue` 就会保留在小数点后两位了。
阅读全文