aが数学的な意味で整数値かどうかを判断する効率的な方法は何ですか?BigDecimal
現在、次のコードがあります。
private boolean isIntegerValue(BigDecimal bd) {
boolean ret;
try {
bd.toBigIntegerExact();
ret = true;
} catch (ArithmeticException ex) {
ret = false;
}
return ret;
}
...しかし、可能であればオブジェクト作成のオーバーヘッドを避けたいです。
以前は、 がコンパクトな表現を内部で使用してbd.longValueExact()
いる場合にオブジェクトの作成を回避するために使用していBigDecimal
ましたが、値が大きすぎて long に収まらない場合は明らかに失敗していました。