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