Почему BigDecimal.equals указан для сравнения значений и масштаба по отдельности?

Это не вопрос о том, как сравнить дваBigDecimal объекты - я знаю, что вы можете использоватьcompareTo вместоequals сделать это, так какequals задокументировано как:

В отличие от compareTo, этот метод считает два объекта BigDecimal равными, только если они равны по значению и масштабу (таким образом, 2.0 не равно 2,00 при сравнении этим методом).

Вопрос в том, почемуequals было указано в этой, казалось бы, нелогичной манере? То есть почемуважный уметь различать 2,0 и 2,00?

Кажется вероятным, что должна быть причина для этого, так какComparable документация, в которой указываетсяcompareTo метод, состояния:

Настоятельно рекомендуется (хотя и не обязательно), чтобы естественные порядки соответствовали равным

Я полагаю, что должна быть веская причина игнорировать эту рекомендацию.

Ответы на вопрос(6)

Ваш ответ на вопрос