gpt4 book ai didi

java - Java 中的 "double, Double, HashSet"

转载 作者:行者123 更新时间:2023-11-30 03:38:12 26 4
gpt4 key购买 nike

请参阅下面的代码。

HashSet中使用“Double”(上D),“double”用于x1、x2和x3。 x1添加到HashSet后,x2不能添加,但是x3可以!为什么??????

提前致谢:)

HashSet<Double> hs = new HashSet<Double>();
double x1, x2, x3;

x1 = (double)0/1;
System.out.println(hs.add(x1)); //true

x2 = (double)0/2;
System.out.println(hs.add(x2)); //false

x3 = (double)0/-1;
System.out.println(hs.add(x3)); //true
<小时/>

如果对 x1、x2 和 x3 添加“0.0 +”,结果如下。

x1 = 0.0 + (double)0/1;
System.out.println(hs.add(x1)); //true

x2 = 0.0 + (double)0/2;
System.out.println(hs.add(x2)); //false

x3 = 0.0 + (double)0/-1;
System.out.println(hs.add(x3)); //false

最佳答案

尝试这个来理解差异:

HashSet<Double> hs = new HashSet<Double>();
double x1, x2, x3;

x1 = (double)0/1;
System.out.println(x1 + " "+ hs.add(x1)); //true

x2 = (double)0/2;
System.out.println(x2 + " " + hs.add(x2)); //false

x3 = (double)0/-1;
System.out.println(x3 + " " + hs.add(x3)); //true

基本上doubles有符号,0/-1 将被 x1 或 x2 计算为 -0.0,而不是 0.0。

关于java - Java 中的 "double, Double, HashSet",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27329363/

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