概述
最近碰到一个bug,用金额判断大小,结果与预想不一致。
经过测试发现是new BigDecimal()的问题,这里做了个简单的测试。
@Test
public void chaeTest() throws Exception{
BigDecimal a = BigDecimal.valueOf(0.99);
BigDecimal b = new BigDecimal(0.99);
boolean c = a == b;
boolean d = a.equals(b);
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println("-------------");
}
0.99
0.9899999999999999911182158029987476766109466552734375
false
false
结果发现new BigDecimal()会改变数值,导致判断出现问题。用BigDecimal.valueof()则不会。
最后
以上就是孤独耳机为你收集整理的BigDecimal.valueof()和new BigDecimal()的区别的全部内容,希望文章能够帮你解决BigDecimal.valueof()和new BigDecimal()的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复