0

如果它们相等,我在测试两个双数组时遇到问题我写了这个方法

    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;
}

每次我使用它时我都会出错!例如:

double []a={1.7,6.9};
double []b={1.7,6.9};
System.out.println(equalsArray(a,b));

它适用于 int 数组,但对于 double 则不能

非常感谢

4

1 回答 1

1

比较双值的最佳方法是:

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

0.00000001被调用epsilon,你可以相应地调整它。

于 2013-10-18T17:48:13.303 回答