Simon Reinhardt: Summierung in for-Schleife gibt falsches Ergebnis

Beitrag lesen

Hi!

ich erhalte bei folgendem Beispiel fehlerhafte Werte, sobald der
Index meiner Auswahlliste 7 oder größer ist.
Für elm.selectedIndex = 6 erhalte ich noch den richtigen Wert 1.12
Für elm.selectedIndex = 7 erhalte ich 1.1400000000000001

Das sieht mir nach einem typischen Rundungsfehler aus. Das ist leider nicht zu verhindern und kommt in jeder Programmiersprache vor - damit hab ich mich auch schon oft rumgeschlagen. Hängt irgendwie damit zusammen, wie Fließkommazahlen als byte-Werte verarbeitet werden.

case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10:

Hier würde ich "default:" benutzen.

return sum;

Versuch mal, den Wert vorher zu runden:

return Math.round(sum*100)/100;

(Für mehr Stellen einfach ein paar Nullen anhängen :)

VG Simon