Расчет отрицательного результата - математическая ошибка - PullRequest
0 голосов
/ 27 января 2019

Добрый вечер!
Я никогда не был хорош в математике.
Я создал Spinner, в котором вы можете выбрать конкретный термин, и на основании этого он вычисляет другой результат.
Проблема сейчас в том, что мой результат отрицательный. Я думаю, что это связано со значением, которое я назначил для строк.

Fragment.java:

        List<palwerte> werteListe = new ArrayList<>();
    palwerte wert1 = new palwerte("Nur sitzend oder liegend", 1.2f);
    werteListe.add(wert1);

    palwerte wert2 = new palwerte("Ausschließlich sitzend", 1.4f);
    werteListe.add(wert2);

    palwerte wert3 = new palwerte("Sitzend, aber auch gehend oder stehend", 1.6f);
    werteListe.add(wert3);

    palwerte wert4 = new palwerte("Überwiegend gehend und stehend", 1.8f);
    werteListe.add(wert4);

    palwerte wert5 = new palwerte("Körperlich anstrengende Arbeit", 2.3f);
    werteListe.add(wert5);

А вот калькулятор (также внутри Fragment.java):

            float PAL = spinnerp.getSelectedItemPosition();
            float result3 = result2 * (PAL - 1);
            float result4 = result3 - result2;
            int result5 = Math.round(result4);
            userLeistung.setText(" " + result5);

Result2 уже отлично работает, так что никаких проблем с этим нет. Только вопрос о коде я выложил здесь. и palwerte.java:

public class palwerte {
    private String name;
    private float wert;

    public palwerte(String name, float wert) {
        this.name = name;
        this.wert = wert;
    }

    public String getName() {

        return name;
    }

    public void setName(String name) {

        this.name = name;
    }

    public float getWert() {

        return wert;
    }

    public void setWert(int wert) {

        this.wert = wert;
    }

    @Override
    public String toString() {

        return name;
    }
}

1 Ответ

0 голосов
/ 27 января 2019

Похоже, что вы используете позицию выбранного элемента вместо значения. Вы должны получить элемент parwerte из своего списка. Я думаю, это то, что вы ищете:

int position = spinnerp.getSelectedItemPosition(); 
float PAL = werteListe.get(position).getWert();
float result3 = result2 * (PAL - 1);
float result4 = result3 - result2;
int result5 = Math.round(result4);
userLeistung.setText(" " + result5);
...