BigDecimal equals () по сравнению с compareTo ()

Рассмотрим простой тестовый класс:

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 () ?

141
задан Jonas 22 July 2011 в 08:52
поделиться