Java将BigDecimal数据转成int
时间: 2024-05-12 16:21:09 浏览: 63
Java中BigDecimal类与int、Integer使用总结
5星 · 资源好评率100%
要将BigDecimal数据转成int,可以使用BigDecimal的intValue()方法。例如:
```
BigDecimal bd = new BigDecimal("1234.56");
int i = bd.intValue();
System.out.println(i); // 输出: 1234
```
如果BigDecimal的值超过了int类型的范围,intValue()方法会抛出ArithmeticException异常。此时可以考虑使用long类型或BigInteger类型来存储BigDecimal的值。例如:
```
BigDecimal bd = new BigDecimal("12345678901234567890");
try {
int i = bd.intValueExact();
System.out.println(i);
} catch (ArithmeticException e) {
System.out.println("Overflow: " + e.getMessage());
}
// 输出: Overflow: BigInteger out of int range
```
上面的代码中,bd的值超过了int类型的范围,所以intValueExact()方法会抛出ArithmeticException异常。我们可以使用longValueExact()方法将bd转成long类型,或使用toBigInteger()方法将bd转成BigInteger类型。例如:
```
long l = bd.longValueExact();
System.out.println(l); // 输出: 12345678901234567890
BigInteger bi = bd.toBigInteger();
System.out.println(bi); // 输出: 12345678901234567890
```
阅读全文