これは、2つのオブジェクトを比較する方法についての質問ではありません。次のように文書化されているため、その代わりにBigDecimal
使用できることを知っています。compareTo
equals
equals
compareToとは異なり、このメソッドは、値とスケールが等しい場合にのみ2つのBigDecimalオブジェクトが等しいと見なします(したがって、このメソッドで比較した場合、2.0は2.00と等しくありません)。
問題は、なぜequals
この一見直感に反する方法で指定されたのかということです。つまり、2.0と2.00を区別できることが重要なのはなぜですか。
メソッドComparable
を指定するドキュメントには次のように記載されているため、これには理由があるはずです。compareTo
自然な順序が等しいと一致していることを強くお勧めします(必須ではありませんが)
この推奨を無視するのには十分な理由があるに違いないと思います。