【问题标题】:Calculating the average in java在java中计算平均值
【发布时间】:2013-12-19 16:31:17
【问题描述】:
double Hg = Double.parseDouble(values2[17]);
for (int i = 0; i < 3; i++) {
    double Avg = (Hg + Hg + Hg) / 3;
    System.out.println(Avg);
}

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

【问题讨论】:

  • 不更改您要平均的值?
  • 等等,values2[17] 到底是什么?一串双打?
  • 你的逻辑是3x/3也就是x,所以你还不如直接打印Hg
  • (Hg + Hg + Hg) / 3 == Hg
  • "values[17] 中的前 3 个值",这到底是什么意思。 values2[17] 是否包含超过 1 个值?

标签: java for-loop average


【解决方案1】:

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

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

【讨论】:

    【解决方案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);
    

    【讨论】:

      【解决方案3】:

      你不会对我做任何事情......

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-07
          • 1970-01-01
          • 2011-12-04
          • 2013-01-14
          • 1970-01-01
          相关资源
          最近更新 更多