思路
用它本身减去它保留0位小数(建议不要四舍五入,直接舍去小数部分)的值和0去比较
如果大于0,说明这个数是小数
如果等于0,说明这个数是整数
不会出现小于0的情况。
如果还要判断是否是正整数,那么在加一个条件,这个数是否大于0
public class TestMain {
public static void main(String[] args) {
BigDecimal a = BigDecimal.valueOf(12.00);
BigDecimal b = a.setScale(0, BigDecimal.ROUND_DOWN);
boolean b1 = a.subtract(b).compareTo(BigDecimal.ZERO) == 0;
System.out.println(StrUtil.format("{}是整数?:{}", a , b1));
a = BigDecimal.valueOf(12.01);
b = a.setScale(0, BigDecimal.ROUND_DOWN);
b1 = a.subtract(b).compareTo(BigDecimal.ZERO) == 0;
System.out.println(StrUtil.format("{}是整数?:{}", a , b1));
a = BigDecimal.valueOf(-12.00);
b = a.setScale(0, BigDecimal.ROUND_DOWN);
b1 = a.subtract(b).compareTo(BigDecimal.ZERO) == 0;
System.out.println(StrUtil.format("{}是整数?:{}", a , b1));
}
}
打印结果: