计算得到NaN但应该是实数

时间:2015-11-24 17:42:27

标签: java

以下示例将一个和整数作为程序参数并计算它们的平均值。但不知何故,它打印“NaN”

public static void main(String args[]) {
    int sum= 0; 
    for(int i= 0; i < args.length; i++) {
        sum= sum + Integer.parseInt(args[i]);
    }

    System.out.println("Average: " + (float)sum / args.length);
}

它如何评价为NaN

1 个答案:

答案 0 :(得分:6)

我测试了你的代码:

public class Test {
    public static void main (String args[]) {
        int sum = 0;
        for(int i= 0; i < args.length; i++) {
            sum = sum + Integer.parseInt(args[i]);
        }
        System.out.println("Sum: " + sum);
        System.out.println("Average: " + (float)sum / args.length);
    }
}

我把它当作:

java Test 1 2 3

输出结果为:

Sum: 6
Average: 2.0

运行java程序时可能忘了传递参数?因为当我把它作为:

运行时
java Test

我明白了:

Sum: 0
Average: NaN