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:如何划分数组并使用Double.NaN?_Java_Arrays_Nan - Fatal编程技术网

Java:如何划分数组并使用Double.NaN?

Java:如何划分数组并使用Double.NaN?,java,arrays,nan,Java,Arrays,Nan,我正在使用数组处理作业。典型的计算器作业。现在,我对数组的划分有一些问题。你不能(你真的可以)除以零。所以,如果我取2个数组并将它们分开,我想使用Double.Nan。参见我的示例: double[] array1 = {2, 4, 6} double[] array2 = {2, 2, 0} public static double[] divide(double[] operand1, double[] operand2) { double[] divArray = ne

我正在使用数组处理作业。典型的计算器作业。现在,我对数组的划分有一些问题。你不能(你真的可以)除以零。所以,如果我取2个数组并将它们分开,我想使用Double.Nan。参见我的示例:

 double[] array1 = {2, 4, 6}

 double[] array2 = {2, 2, 0}

 public static double[] divide(double[] operand1, double[] operand2) {

    double[] divArray = new double[operand1.length];

    for(int i = 0; i < operand1.length; i++) {
        if (operand2[i] == 0) {
            divArray[i] = Double.NaN;
        } else {
            divArray[i] = operand1[i] / operand2[i];
        }           
    }

    return divArray;
}
double[]array1={2,4,6}
双[]数组2={2,2,0}
公共静态双[]除法(双[]操作数1,双[]操作数2){
double[]divArray=新的双精度[operator 1.length];
for(int i=0;i<1.length;i++){
if(操作数2[i]==0){
divArray[i]=Double.NaN;
}否则{
divArray[i]=操作数1[i]/操作数2[i];
}           
}
返回div数组;
}
(divArray返回到main方法)

在循环输出新数组之后,我最终得到了这个

[1.0,2.0,0.0]

为什么0.0不是NaN


另外,我如何进行一些调整以使其能够输出NaN?

以获得奖励积分,并添加到上述Andreas的答案中

for(int i = 0; i < operand1.length; i++) {
    divArray[i] = (operand2[i] == 0.0) ? Double.NaN : (operand1[i] / operand2[i]);
}
for(int i=0;i<1.length;i++){
divArray[i]=(操作数2[i]==0.0)?Double.NaN:(操作数1[i]/操作数2[i]);
}

可能不需要任何一组括号,但我喜欢它们只是为了清楚。另外,因为它是Double,所以我在检查中使用了0.0,虽然也可能没有必要。

我想你的意思是
divArray[I]=Double.NaN
,而不是
操作数2[i]=Double.NaN是……你是对的!有时似乎很容易……但有时困难的事情很容易。@Nalaedge请不要编辑问题来“纠正”问题,如果问题如Andreas所述。现在这个问题毫无意义。