Почему BigDecimal.equals указан для сравнения значений и масштаба по отдельности?
Это не вопрос о том, как сравнить дваBigDecimal
объекты - я знаю, что вы можете использоватьcompareTo
вместоequals
сделать это, так какequals
задокументировано как:
В отличие от compareTo, этот метод считает два объекта BigDecimal равными, только если они равны по значению и масштабу (таким образом, 2.0 не равно 2,00 при сравнении этим методом).
Вопрос в том, почемуequals
было указано в этой, казалось бы, нелогичной манере? То есть почемуважный уметь различать 2,0 и 2,00?
Кажется вероятным, что должна быть причина для этого, так какComparable
документация, в которой указываетсяcompareTo
метод, состояния:
Настоятельно рекомендуется (хотя и не обязательно), чтобы естественные порядки соответствовали равным
Я полагаю, что должна быть веская причина игнорировать эту рекомендацию.