Я пытаюсь метод, который читает данные из файла, а затем использует эти данные для подсчета общего среднего и среднего каждого выбора счетчика. Но по какой-то причине приложение вылетает всякий раз, когда я пытаюсь сделать вычисления, или оно дает NaN для всего.
Так что мои вычисления неверны или это метод, который я использую для чтения данных из файла?
public void skaiciuoti(){
TextView rez = findViewById(R.id.pran);
rez.setText("");
double vid = 0;
double mvid = 0;
double ivid = 0;
double fvid = 0;
double bvid = 0;
double gvid = 0;
double suma = 0;
double msuma = 0;
double isuma = 0;
double fsuma = 0;
double bsuma = 0;
double gsuma = 0;
double kiekis = 0;
double mkiekis = 0;
double ikiekis = 0;
double fkiekis = 0;
double bkiekis = 0;
double gkiekis = 0;
try {
FileInputStream fis = openFileInput("pazymiai");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader bufferedReader = new BufferedReader(isr);
String line = "";
while ((line = bufferedReader.readLine()) != null) {
String[] mas = line.split(";");
if (mas.length == 2) {
double pazymys = Integer.parseInt(mas[0]);
String dalykas = mas[1];
suma = suma + pazymys;
kiekis++;
vid = suma / kiekis;
if(dalykas.equals("Matematika")){
msuma = msuma + pazymys;
mkiekis++;
}
if(dalykas.equals("Informatika")){
isuma = isuma + pazymys;
ikiekis++;
}
if(dalykas.equals("Fizika")){
fsuma = fsuma + pazymys;
fkiekis++;
}
if(dalykas.equals("Biologija")){
bsuma = bsuma + pazymys;
bkiekis++;
}
if(dalykas.equals("Geografija")){
gsuma = gsuma + pazymys;
gkiekis++;
}
}
}
} catch (Exception e) {
Toast.makeText(this, "Klaida 3", Toast.LENGTH_LONG).show();
}
mvid = msuma / mkiekis;
ivid = isuma / ikiekis;
fvid = fsuma / fkiekis;
bvid = bsuma / bkiekis;
gvid = gsuma / gkiekis;
rez.setText("Vidurkis: "+vid+"\n");
rez.append("Matematikos vidurkis: "+mvid+"\n");
rez.append("Informatikos vidurkis: "+ivid+"\n");
rez.append("Fizikos vidurkis: "+fvid+"\n");
rez.append("Biologijos vidurkis: "+bvid+"\n");
rez.append("Geografijos vidurkis: "+gvid+"\n");
}