gpt4 book ai didi

java - 为什么指定 BigDecimal.equals 来分别比较值和比例?

转载 作者:IT老高 更新时间:2023-10-28 21:01:18 35 4
gpt4 key购买 nike

这不是关于如何比较两个 BigDecimal 对象的问题 - 我知道您可以使用 compareTo 而不是 equals 来做到这一点, 因为 equals 被记录为:

Unlike compareTo, this method considers two BigDecimal objects equal only if they are equal in value and scale (thus 2.0 is not equal to 2.00 when compared by this method).

问题是:为什么要以这种看似违反直觉的方式指定 equals?也就是说,为什么能够区分 2.0 和 2.00 是重要

这似乎是有原因的,因为指定 compareTo 方法的 Comparable 文档指出:

It is strongly recommended (though not required) that natural orderings be consistent with equals

我认为忽略此建议一定有充分的理由。

最佳答案

因为在某些情况下,精度指示(即误差幅度)可能很重要。

例如,如果您要存储由两个物理传感器进行的测量,那么其中一个传感器的精度可能是另一个传感器的 10 倍。表达这一事实可能很重要。

关于java - 为什么指定 BigDecimal.equals 来分别比较值和比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14102083/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com