Согласно 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 ()
, похоже, не работает так, как я думаю.
What ' здесь происходит?