Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两个双数组的相等性_Java_Arrays - Fatal编程技术网

Java 两个双数组的相等性

Java 两个双数组的相等性,java,arrays,Java,Arrays,我在测试两个双数组是否相等时遇到了问题,我编写了这个方法 public static boolean equalsArray(double[]a,double[]b){ if(a.length!=b.length) return false; else{ for(int i=0;i<a.length;i++) if(a[i]!=b[i]) return false; } retu

我在测试两个双数组是否相等时遇到了问题,我编写了这个方法

    public static boolean equalsArray(double[]a,double[]b){
    if(a.length!=b.length)
        return false;
    else{
        for(int i=0;i<a.length;i++)
        if(a[i]!=b[i])
            return false;
    }
    return true;
}
它适用于int数组,但不适用于double数组


非常感谢

比较双值的最佳方法是:

double a = 1.000000;
    double b = 1.000009;
    if(Math.abs(a-b)<=0.00000001){
        System.out.println("equal");
    }
双a=1.000000;
双b=1.000009;

如果(Math.abs(a-b)在我的例子中返回
true
。顺便说一句,你可以使用
Arrays.equals()
这是你的实际测试用例吗?还是仅仅是一个例子?它应该返回
true
。我在这里没有看到问题。你发布的代码片段工作得很好(在前面提到的例子中它返回true)。它现在可以工作了,感谢lot1)问题是比较两个双精度数组,而不仅仅是两个双精度数组。2) 我不会调用打印结果的东西,而不是返回数组中的“最佳方式”@DennisMeng,我们也在比较两个双精度。像这样比较两个替身是不可取的。
double a = 1.000000;
    double b = 1.000009;
    if(Math.abs(a-b)<=0.00000001){
        System.out.println("equal");
    }