我正在我的 Web 应用程序中实现一个自定义验证器,它可以验证BigInteger
bean 的属性。此属性映射到一种Number(8, 0)
类型的 Oracle 表。
就像BigDecimal
,我没有看到BigInteger
可以返回给定数字精度的方法。
基本上,我首先将一个BigInteger
值转换BigDecimal
为获得它的精度,如下所示(这只是为了演示)。
int minPrecision=1;
int maxPrecision=8;
BigInteger bigInteger=new BigInteger("12345");
BigDecimal bigDecimal=new BigDecimal(bigInteger, 0);
int precision=bigDecimal.precision();
boolean isValid=precision>=minPrecision && precision<=maxPrecision;
System.out.println(isValid+" : "+precision);
是否BigInteger
提供了一种精确的方法来返回其值的精度?