Рассмотрим простой тестовый класс:
import java.math.BigDecimal;
/**
* @author The Elite Gentleman
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal x = new BigDecimal("1");
BigDecimal y = new BigDecimal("1.00");
System.out.println(x.equals(y));
System.out.println(x.compareTo(y) == 0 ? "true": "false");
}
}
Вы можете (сознательно) сказать, что x
это равно y
(не ссылка на объект), но когда вы запускаете программу, показывается следующий результат:
false
true
Вопрос: Какая разница между compareTo()
и equals()
в BigDecimal
чем compareTo
можно определить, что x
равно y
?
PS: я вижу, что у BigDecimal есть inflate()
метод для equals()
метода. Что делает на inflate()
самом деле?
inflate()
: оно не является частью общедоступного API, поскольку оно манипулирует только внутренним представлением и не оказывает видимого влияния на «внешнее». Поэтому, если вы действительно не хотитеBigDecimal
углубленно изучать реализацию , я бы посоветовал вам игнорировать этот метод.