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