BigDecimal compareTo не работает должным образом

Согласно 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 ' здесь происходит?

13
задан Akshay 19 May 2011 в 12:57
поделиться