判断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);

    }

 

 

posted @ 2015-07-29 14:43  buoge  阅读(2027)  评论(0编辑  收藏  举报