计算负结果 - 数学失败

Calculating negative result - Math fail

晚上好!
我从来都不擅长数学。
我创建了一个微调器,您可以在其中 select 一个特定的术语,并根据它计算出不同的结果。
现在的问题是我的结果是否定的。我认为这与我分配给字符串的值有关。

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;
    }
}

您似乎使用的是所选项目的位置而不是值。 您必须从列表中获取 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);