这不是关于如何比较两个BigDecimal对象的问题 - 我知道您可以使用compareTo而不是equals这样做,因为equals记录为:
与 compareTo 不同,此方法仅当两个 BigDecimal 对象的值和比例相等时才认为它们相等(因此,通过此方法进行比较时,2.0 不等于 2.00)。
问题是:为什么equals以这种看似违反直觉的方式来指定?也就是说,为什么能够区分 2.0 和 2.00很重要?
这似乎一定是有原因的,因为Comparable指定compareTo方法的文档指出:
强烈建议(尽管不是必需的)自然排序与 equals 一致
我想一定有充分的理由忽略这个建议。