查找包含字符串和双精度的文本文件中双精度的平均值(java)
我必须从包含字符串和双精度的文本文件中获得双精度的平均值。在我的代码中,我得到了多个长双精度,但我只需要一个双精度,这应该是平均值。请帮忙,我已经试着修了好几天了。是否也需要十进制格式或printf来打印平均值?这是我的代码,这是java查找包含字符串和双精度的文本文件中双精度的平均值(java),java,sum,double,text-files,average,Java,Sum,Double,Text Files,Average,我必须从包含字符串和双精度的文本文件中获得双精度的平均值。在我的代码中,我得到了多个长双精度,但我只需要一个双精度,这应该是平均值。请帮忙,我已经试着修了好几天了。是否也需要十进制格式或printf来打印平均值?这是我的代码,这是java for (int i = 0; i < length; i++) { double sum; int count; sum = 0.0; count = 0; Scanne
for (int i = 0; i < length; i++) {
double sum;
int count;
sum = 0.0;
count = 0;
Scanner readFile = new Scanner(new File("members.txt"));
while (readFile.hasNextLine()) {
String line = readFile.nextLine();
if (line.length() == 4 && line.matches("-?\\d+(\\.\\d+)?")) {
count++;
sum += Double.valueOf(line);
double average= sum/count;
System.out.println(average);
}
我不知道为什么需要这个条件:line.length==4 为什么是for循环? 如果要读取1个文本文件
double sum = 0.0;
int count = 0;
Scanner readFile = new Scanner(new File("members.txt"));
while (readFile.hasNextLine()) {
String line = readFile.nextLine();
if (line.length() == 4 && line.matches("-?\\d+(\\.\\d+)?")) {
count++;
sum += Double.valueOf(line);
}
}
double average= sum/count;
System.out.println(average);
平均值是在循环结束后计算的,而不是在循环内部。在循环外部移动两行
double average= sum/count;
System.out.println(average)
目前,您的程序在文件中找到每一个双精度后,都会以平均速度打印。欢迎使用堆栈溢出!请参加并访问我们的网站,了解哪些问题适合本网站。如果你的问题符合本网站的要求,请这样做。只需在结尾处除以“计数”,这就是你不使用nb1/count+nb2/count进行平均的方法…请不要破坏你的帖子。一旦您提交了一篇文章,您就已经将内容授权给了Stack Overflow社区。根据SE政策,任何故意破坏行为都将恢复原状。