【发布时间】:2011-10-10 20:33:52
【问题描述】:
考虑简单的测试类:
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
问题:BigDecimal中的compareTo()和equals()有什么区别,compareTo可以确定x等于y?
PS:我看到 BigDecimal 在 equals() 方法上有一个 inflate() 方法。 inflate() 究竟做了什么?
【问题讨论】:
-
广告
inflate():它不是公共 API 的一部分,因为它只操纵内部表示,对“外部”没有可见的影响。所以除非你真的想深入研究BigDecimal的实现,否则我建议你忽略这个方法。 -
简单说明和sn-ps源码可以看here
标签: java equals bigdecimal compareto