В соответствии с JavaDoc для BigDecimal функция compareTo не учитывает масштаб во время сравнения.
Теперь у меня есть тестовый пример, который выглядит примерно так:
BigDecimal result = callSomeService(foo);
assertTrue(result.compareTo(new BigDecimal(0.7)) == 0); //this does not work
assertTrue(result.equals(new BigDecimal(0.7).setScale(10, BigDecimal.ROUND_HALF_UP))); //this works
Значение, которое я ожидаю вернуть функции, 0.7 и имеет шкалу 10. Распечатка значения показывает мне ожидаемый результат. Но функция compareTo(), похоже, не работает так, как мне кажется.
Что здесь происходит?