标签:
用了半个小时搞懂了这个问题,基础愁死我了!
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);
}
标签:
原文地址:http://www.cnblogs.com/buoge/p/4685877.html