java - 诊断 NaN 的原因

标签 java arrays nan

我想按列对 2D 数组求和并求平均值,如果 e[i][j] 的值大于 0 ,计数并求和。但我不知道输出是 NaN , 我该如何解决这个问题?

public class d_2DArray {

    public static void main(String [] args){



      double[][] e=   {{0.0,0.0,0.0,0.0},
                        {0.0,0.6,0.0,0.0},
                        {0.0,0.2,0.5,0.1},
                        {0.0,0.2,0.5,0.4},
                        {0.0,0.2,0.5,0.7},
                        {0.0,0.0,0.0,0.9}};



        double[] avg= new double[4];  
        double[] sum= new double[4];
        int i,j,k=0;
        int[][] x=new int [6][4] ;

            //average of column  


        for(j=1;j<e[1].length;j++){   


            sum[j]=0.0;

             for( i= 1; i < e.length; i++)

            if(x[i][j]==1){
                sum[j] +=e[i][j];
                k++;
        }
        avg[j]= sum[j]/k ; 

          System.out.println("Average j="+avg[j]);  

        }



    }
}

最佳答案

此处 k 的值在程序结束时仍为 0,因此将 0 除以 0 得到 NaN。

关于java - 诊断 NaN 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8162714/

相关文章:

java - C 与 Java 原始转换和表达式

java - 如何获取文件的当前路径和文件的根项目?

java - 如何做语言(I18n)特定的速度模板

c - 在 C 中构造数组补集的惯用方法

c# - 仅当数组为空时 JSON 反序列化才会失败

java - 如何从对象数组中获取对象特定属性的值?

flutter - 如何在单元测试中比较NaN和NaN是否相等

java - 覆盖和弱化访问修饰符

c++ - 故意返回 NaN

c++ - 当方程式返回 nan 作为答案时该怎么办?