判断decimal 是否为整数

时间:2023-03-08 22:09:41
判断decimal 是否为整数
用了半个小时搞懂了这个问题,基础愁死我了!

private static boolean isIntegerValue(BigDecimal decimalVal) {
return decimalVal.scale() <= 0 || decimalVal.stripTrailingZeros().scale() <= 0;
} //decimalVal.stripTrailingZeros(); 得到的值包含科学计数法:用下面这段解释 public static void main(String[] args) {
float exp1 = 1.39e-43f;
System.out.println("科学计数法1==" + exp1);// 表示1.39乘以10的负43次方 double exp2 = 47 * 10000000000000000000000000000000000000d;
System.out.println("科学计数法2==" + exp2);// 表示47乘以10的37次方===4.7E38 float exp3 = 1e-43f;// 此时43后面必须加上f,否则会报错.编译器同擦汗那个会将指数最为双精度处理。
System.out.println("科学计数法3==" + exp3);// 表示1乘以10的负43次方
long n = 200;// 此时不需要在200后面加l,因为编译器能识别这个类型,在这里不存在含混不清的地方。
System.out.println(n); /***
* 打印结果为:
* 科学计数法1==1.39E-43
* 科学计数法2==4.7E38
* 科学计数法3==1.0E-43
* 200
*
* */
}    //获取decimal整数      private static BigDecimal getValRoundDown(BigDecimal decimalVal) {

return decimalVal.setScale(0, BigDecimal.ROUND_DOWN);

}