В соответствии с 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()
, похоже, не работает так, как мне кажется.
Что здесь происходит?