考虑简单的测试类:
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()
method上有一个equals()
方法。inflate()
实际做什么?
inflate()
:它不是公共API的一部分,因为它仅操纵内部表示,并且对“外部”没有可见的影响。因此,除非您真的想深入研究实现,否则BigDecimal
建议您忽略此方法。