在Java中检查BigDecimal是否为整数

12 浏览
0 Comments

在Java中检查BigDecimal是否为整数

有没有一种高效的方法来确定一个BigDecimal对象是否是数学意义上的整数?

目前我有以下代码:

private boolean isIntegerValue(BigDecimal bd) {

boolean ret;

try {

bd.toBigIntegerExact();

ret = true;

} catch (ArithmeticException ex) {

ret = false;

}

return ret;

}

... 但如果可能的话,我希望避免创建对象的开销。

以前我使用的是bd.longValueExact(),如果BigDecimal对象在内部使用了紧凑表示,这样就避免了创建对象,但是如果值太大而无法放入long类型中,这种方法显然会失败。

0