java为什么不显示“好”这个词?
当我运行这段代码时,为什么不显示“good”一词?存储在Array1和Array2的位置0中的值都是1
public class ArrayStuff {
public static void main(String[] args) {
double value = 1;
Double[] Array1 = new Double[10];
Array1 = new Double[] {1.0};
Double[] Array2 = new Double[10];
Array2[0] = value;
int i = 0;
System.out.println(Array1[0]);
System.out.println(Array2[i]);
if (Array1[0] == Array2[i])
{
System.out.println("good");
}
}
}
# 1 楼答案
因为有限精度数有它们的limits,特别是在比较它们的精确等式时
您应该通过检查to值之间的差异是否小于某个阈值来解决问题: