Mam plik o nazwie Numbers.txt z następującą zawartością:
8.5
83.45, 90.2
120.00, 11.05
190.00
Napisałem kod, który używa zawartości pliku do obliczenia sumy i średniej liczb w pliku, jednak kiedy uruchamiam kod, średni wynik to "NaN"
KOD:
package lab13;
import java.util.Scanner;
import java.io.*;
public class problem1 {
public static void main(String[] args) throws IOException
{
double sum = 0;
int count = 0;
double num,total = 0;
double average = total/count;
File file = new File("Numbers.txt");
Scanner scan = new Scanner(file);
while (scan.hasNext())
{
double number = scan.nextDouble();
sum = sum + number;
}
while (scan.hasNextDouble())
{
num = scan.nextDouble();
System.out.println(num);
count++;
total += num;
}
scan.close();
System.out.println("The sum of the numbers in " +
"Numbers.txt is " + sum );
System.out.println("The average of the numbers in " +
"Numbers.txt is " + average );
}
}
Wynik:
Suma liczb w pliku Numbers.txt wynosi 503,2
Średnia liczb w pliku Numbers.txt to NaN
1 odpowiedź
Musisz zrobić
double average = total/count;
po masz wartości total
i count
Ale też to zauważ
Kiedy while (scan.hasNext())
strumień zostanie wyczerpany, wtedy while (scan.hasNextDouble())
również zostanie wyczerpany
Można to przezwyciężyć, ale wystarczy tylko raz zapętlić
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].
double average = total/count;
- Dzielisz0
przez0
.