bigdecimal转long
时间: 2023-11-12 14:03:43 浏览: 51
可以通过`BigDecimal`的`longValue()`方法将其转换为`long`类型,但需要注意`BigDecimal`的值是否超出了`long`类型的范围。
例如:
```java
BigDecimal bd = new BigDecimal("1234567890123456789");
long l = bd.longValue();
System.out.println(l); // 输出:-276447232
```
由于`1234567890123456789`超出了`long`类型的范围,所以`longValue()`方法返回的值不正确。如果需要确保转换的正确性,可以先使用`compareTo()`方法判断`BigDecimal`对象的值是否超出了`long`类型的范围,然后再进行转换,例如:
```java
BigDecimal bd = new BigDecimal("1234567890123456789");
if (bd.compareTo(BigDecimal.valueOf(Long.MAX_VALUE)) > 0 || bd.compareTo(BigDecimal.valueOf(Long.MIN_VALUE)) < 0) {
// 超出了long类型的范围
System.out.println("超出了long类型的范围");
} else {
long l = bd.longValue();
System.out.println(l); // 输出:1234567890123456789
}
```
阅读全文