gpt4 book ai didi

java float : == equals compareTo

转载 作者:行者123 更新时间:2023-11-29 09:36:47 25 4
gpt4 key购买 nike

我有 2 个问题。

1) 我被告知在比较两个 FloatDouble 数据时,使用 compareTo 而不是 equals .我不知道原因。是否有任何示例说明使用 equals 会导致错误?

2) 看这段代码:

  float f2=(float)1.123450;
Float f3=new Float(1.123450);

System.out.println(f3==f2); // result is true

我认为使用== 意味着两个数据指向相同的内存地址。但是 f3f2 有相同的地址吗? new Float(...) 不会创建一个新空间吗?

最佳答案

如果两个参数都是引用类型,那么 == 将测试内存位置。但是,如果 ==(或 !=)的参数之一是数字,而另一个可转换为数字(使用拆箱),则比较通过比较拆箱后的数值。因此,本例中的比较是基于浮点值(在本例中是相同的)进行的。查看Java Language Specification §15.21.1了解详情。

但是请注意,Float.NaN == Float.NaNfalse

关于java float : == equals compareTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com