Не следует сравнивать значения с плавающей точкой, как это

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

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() делать на самом деле?

Ответы на вопрос(3)

Ваш ответ на вопрос