JAVA BigDecimal的equals和compareTo

  • Post author:
  • Post category:java


一,区别

因为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 版权协议,转载请附上原文出处链接和本声明。