Java 返回为NaN的平均和标准偏差方法

Java 返回为NaN的平均和标准偏差方法,java,arrays,methods,Java,Arrays,Methods,我正在做一个程序,得到数组中插补的数字的平均值和标准差。但我只停留在一件事上:无论何时返回平均值和标准偏差,它都不会显示为一个数字。代码有什么问题 方法如下: public mainFrame() { initComponents(); } private double avg; private double stdDeviation; private double[] gradeArray; /** * * @param gradeArray

我正在做一个程序,得到数组中插补的数字的平均值和标准差。但我只停留在一件事上:无论何时返回平均值和标准偏差,它都不会显示为一个数字。代码有什么问题

方法如下:

    public mainFrame() {
    initComponents();
}

private double avg;
private double stdDeviation;
private double[] gradeArray;

    /**
     *
     * @param gradeArray
     * @param numElem
     * @return
     */
    public double getAverage (double[] gradeArray, int numElem) {
    double sum = 0;

    for(int i=0;i<numElem;i++){
        sum = sum + gradeArray[i];
    }
    return (sum/numElem);        
}

public double getStdDev (double[] gradeArray, int numElem, double avg){
    double sum = 0;

    for(int i = 0;i<numElem;i++){
        sum = sum + Math.pow((gradeArray[i]-avg),2);
    }
    return Math.sqrt(sum/numElem);
公共大型机(){
初始化组件();
}
私人双平均;
私人双重旅行;
专用双数组;
/**
*
*@param-grade数组
*@param numElem
*@返回
*/
公共双getAverage(双[]等级数组,整数){
双和=0;

对于(int i=0;i而言,问题在于使用这样的语句进行除法:
return(sum/numElem);
其中
numElm
初始化为
0
sum
也是
0
,因为以下语句从未执行:

for(int i=0;i<numElem;i++){ //<---- numElem = 0
        sum = sum + gradeArray[i];
    }

for(int i=0;i您是否尝试过使用调试器?
numElem
从0开始。因此,在
getAverage
中,您将除以0。
for(int i=0;i<numElem;i++){ //<---- numElem = 0
        sum = sum + gradeArray[i];
    }