一,区别
因为BigDecimal是对象,所以不能用==来判断两个数字的值是否相等。那使用equals和compareTo这两个方法有啥区别呢???
equals方法会比较两部分内容,分别是值(value)和精度(scale),而compareTo方法比较会忽略精度。
二,为什么BigDecimal精度不同
这个问题其实是比较复杂的,由于不是本文的重点,这里面就不过多介绍。大家感兴趣的话,可以在去看下BigDecimal构造函数的源码。
BigDecimal一共有以下4个构造方法:
BigDecimal(int)
BigDecimal(double)
BigDecimal(long)
BigDecimal(String)
以上
四个方法,创建出来的的BigDecimal的精度是不同的。
三,equals比较代码截图
equals代码中比较了精度的代码
四,测试小案例
代码:
运行结果:
版权声明:本文为The_clown原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。