Bigdecimal类型判断是否等于0(用equals方法的坑)
来源:互联网 发布:儿童编程培训班加盟 编辑:程序博客网 时间:2024/06/04 18:57
1.我之前用来判断Bigdecimal类型是否等于0的方法
b.equals(BigDecimal.ZERO);
用equals方法和BigDecimal.ZERO进行比较。
2.上面方法存在的问题
有一天,调用这个这句代码的时候,传入的确实是0,但却返回false
查看源代码发现:
Bigdecimal的equals方法不仅仅比较值的大小是否相等,首先比较的是scale(scale是bigdecimal的保留小数点位数,比如 new Bigdecimal("1.001"),scale为3),也就是说,不但值得大小要相等,保留位数也要相等,equals才能返回true。
Bigdecimal b = new Bigdecimal("0") 和 Bigdecimal c = new Bigdecimal("0.0"),用equals比较,返回就是false。
Bigdecimal.ZERO的scale为0。
所以,用equals方法要注意这一点。
3.用b.compareTo(BigDecimal.ZERO)==0,可以比较是否等于0,返回true则等于0,返回false,则不等于0
阅读全文
0 0
- Bigdecimal类型判断是否等于0(用equals方法的坑)
- Bigdecimal类型判断是否等于0(用equals方法的坑)
- 判断Bigdecimal类型是否等于0的方法
- equals()方法的应用,判断引用类型是否相等
- bigDecimal的比较方法 equals和compareTo
- php的一个判断值是否等于0的陷阱
- Set内判断是否包含与equals方法的重要性
- 重写equals方法判断类的值是否相等
- 判断Map中字符串key的值是否等于0
- ArrayList用equals方法判断对象是否在其中
- 判断是否为日期类型的方法
- double类型是否相等的判断方法
- 判断对象是否相等---重写equals方法
- 判断浮点数是否等于0
- 判断浮点数是否等于0
- Java用重载的equals()判断实例变量是否相等
- Handlebars的registerHelper方法实现if标签判断是否等于某个特定值
- JS 判断某变量是否等于某数组中的一个值 的几种方法
- STM32外部中断(EXTI)分析和应用
- poj 2109 Power of Cryptography
- JSON.parse()方法,将数据(字符串)转化为javascript对象
- 文档管理Qoppa 商家PDF 系列产品2016R1更新合集
- 利用libevent 和线程池实现高并发服务器的设计
- Bigdecimal类型判断是否等于0(用equals方法的坑)
- QLineEdit
- JavaScript中神奇的call()方法
- Codeforces 520B Two Buttons 题解
- LibLinear使用总结(L1,L2正则)
- Java笔试题解(7)
- Unity 3D
- 单例模式如何传参?
- 爱测未来实习-在讯飞实习下成长