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次而不是添加然后除以。 对我做错了什么的想法?
答案 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