判断decimal 是否为整数

本文通过实例解析科学计数法表示的浮点数转换及使用BigDecimal进行整数提取的方法,涵盖从基础概念到具体实现的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用了半个小时搞懂了这个问题,基础愁死我了!

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

    }

 

 

转载于:https://www.cnblogs.com/buoge/p/4685877.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值