小编典典

BigDecimal equals() 与 compareTo()

all

考虑简单的测试类:

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


阅读 77

收藏
2022-08-03

共1个答案

小编典典

答案在方法
JavaDoc
equals()


不同compareTo的是,此方法仅当两个BigDecimal对象的值和比例相等时才认为它们相等(因此,通过此方法进行比较时,2.0
不等于 2.00)。

换句话说:equals()检查BigDecimal对象在 各个* 方面是否 完全相同。 “only” 比较它们的数值。
*compareTo()

2022-08-03