我正在我的 Web 应用程序中实现一个自定义 validator ,它可以验证 bean 的 BigInteger
属性。此属性映射到 Oracle 表的 Number(8, 0)
类型。
与 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
是否提供了返回其值精度的精确方法?
最佳答案
BigInteger 上没有精度方法,因为精度的概念对于 Integer 来说没有意义。 BigInteger
表示任意大小的整数,与 BigDecimal
不同,后者表示 float 的精确十进制表示形式,因此具有关联的精度。
关于java - Java中如何获取BigInteger的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15677518/