今天碰到一个需求,需要判断bigdecimal类型的数据再除以一个数后是否为整数,网上查了资料,找到了解决办法,如下。
public static boolean isInteger(BigDecimal bigDecimal) {
return bigDecimal.scale() <= 0 || bigDecimal.stripTrailingZeros().scale() <= 0;
}
其中bigDecimal.scale() <= 0,判断是否有小数位,注意这个方法不能判断像10.0000这样后面带0的整数。 而bigDecimal.stripTrailingZeros().scale() <= 0,是补充上面方法的缺陷,下面是此方法的解释。
通过上面的两个方法,就可以判断一个bigdecimal类型的数据是否为整数了。