【发布时间】:2012-10-25 14:49:51
【问题描述】:
我有 2 个问题。
1) 有人告诉我,在比较两个 Float 或 Double 数据时,请使用 compareTo 而不是 equals。我不知道原因。是否有任何示例表明使用 equals 会导致错误?
2) 见此代码:
float f2=(float)1.123450;
Float f3=new Float(1.123450);
System.out.println(f3==f2); // result is true
我认为使用== 意味着两个数据指向同一个内存地址。但是f3 和f2 有相同的地址吗? new Float(...) 不会创建新空间吗?
【问题讨论】:
-
From the docs: "这个方法[
compareTo]强加的Float对象的自然顺序与equals一致。"