计算java中的平均值

时间:2013-12-19 16:31:18

标签: java for-loop average

double Hg = Double.parseDouble(values2[17]);
for (int i = 0; i < 3; i++) {
    double Avg = (Hg + Hg + Hg) / 3;
    System.out.println(Avg);
}

我的程序读取一个文件并将所有内容放在名为values2的String数组中。数组元素#17(values2 [17])包含我需要的值。我将该数组元素转换为双数,然后我可以计算平均值。程序应该取值[17]中的前3个值然后除以3来计算平均值,但它只是打印出相同的值3次而不是添加然后除以。 对我做错了什么的想法?

4 个答案:

答案 0 :(得分:2)

如果我理解你在做什么(以逗号分隔的值字符串),它可以像......一样简单......

public static void main(String[] args) {
    String[] values = new String[18];
    values[17] = "1.0, 2.0, 4.0";
    double total = 0;
    int count = 0;
    for (String v : values[17].split(",")) {
        if (v != null) {
            total += Double.valueOf(v.trim());
            count++;
        }
    }
    double avg = total / ((double) count);
    System.out.println("The average of " + values[17] + " is " + avg);
}

哪个输出

The average of 1.0, 2.0, 4.0 is 2.3333333333333335

答案 1 :(得分:2)

如果values2[17]是像“2 5 7”这样的字符串,那么你需要逐个解析它们

String[] nums = valus2[17].split(" ");
double d1 = Double.parseDouble(num[0]);
double d2 = Double.parseDouble(num[1]);
double d3 = Double.parseDouble(num[3]);

double average = (d1 + d2 + d3) / 3;

另一方面,如果您有类似“567”的字符串,并且您想要单个值,可以拆分为char数组,然后添加int值

String value = "567"     // value2[17]
char[] digits = value.toCharArray();

int total = 0;
for (char c : digits){
    total += Integer.parseInt(String.valueOf(c));
}
double average = total / new Double(digits.length);

答案 2 :(得分:0)

你对i ...没有做任何事情。

double total= 0.0;
for(int i = 0; i < 3;i++) {
    total += values[i];
}
double avarage = total/3.0;
System.out.println(avarage);

答案 3 :(得分:0)

目前你将整个数组添加到自身3次然后除以你需要在数组中添加三个想法然后除以三

DO

double Avg = values2[0] + values2[1] + values2[2] / 3