gpt4 book ai didi

Java - 正负零的比较

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:25 25 4
gpt4 key购买 nike

为什么 Java 在比较 -0.0 和 +0.0 时不一致?比较数字以说明 -0/+0 的 Java 标准方法是什么?

我遇到过这个特别的bugaboo:

public class ZeroCompare {
public static void main(String[] args) {
if ( 0.0 == -0.0 ) {
System.out.println("== --> same");
} else {
System.out.println("== --> different");
}

if ( new Double(0.0).equals( -0.0 ) ) {
System.out.println("equals --> same");
} else {
System.out.println("equals --> different");
}
}
}

打印如下:

== --> same
equals --> different

我非常不喜欢您比较这两个值的方式会影响结果这一事实,我希望得到解释。

最佳答案

此行为是 actually documented :

If d1 represents +0.0 while d2 represents -0.0, or vice versa, the equal test has the value false, even though +0.0==-0.0 has the value true. This definition allows hash tables to operate properly.

关于Java - 正负零的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32010501/

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