Как правильно прочитать данные из файла, чтобы сделать расчеты? - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь метод, который читает данные из файла, а затем использует эти данные для подсчета общего среднего и среднего каждого выбора счетчика. Но по какой-то причине приложение вылетает всякий раз, когда я пытаюсь сделать вычисления, или оно дает 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");

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...