检查BigDecimal是否为整数值

任何人都可以推荐一种 方法来确定a是否BigDecimal为数学意义上的整数吗?

目前,我有以下代码:

private boolean isIntegerValue(BigDecimal bd) {

boolean ret;

try {

bd.toBigIntegerExact();

ret = true;

} catch (ArithmeticException ex) {

ret = false;

}

return ret;

}

…但是希望在必要时避免创建对象的开销。以前,我使用bd.longValueExact()BigDecimal是如果内部使用紧凑的表示形式则可以避免创建对象,但是如果值太大而无法容纳很长的对象,则显然会失败。

任何帮助表示赞赏。

回答:

根据BigDecimal值的来源/用途,首先检查刻度是否小于等于0可能会更快。如果是,那么从数学意义上讲,它绝对是整数。如果是> 0,则它 可能

仍是一个整数值,并将需要更昂贵的测试。

以上是 检查BigDecimal是否为整数值 的全部内容, 来源链接: utcz.com/qa/434944.html

回到顶部