Runden auf zwei Nachkommastlellen
Franz-Josef Herpers
- javascript
Hallo Forumer,
habe im Archiv einiges zum Runden mit Perl gefunden, aber nicht das Passende zu Javascript.
Mit round() lassen sich Kommazahlen in JS auf Ganzzahlen runden, so weit so gut.
Was aber, wenn ich auf 2 Stellen hinter dem Komma runden muß. Gibt's da eine Möglichkeit. Eine Methode des Math-Objekts dafür gibts nicht (jedenfalls so weit ich weiss).
Vielleicht nochwas zum Hintergrund.
Habe eine Artikelliste. Trägt der user die Anzahl der zu bestellenden Artikel ein, wird in einem Textfeld die Gesamtsumme in DM ausgegeben. Nun habe ich das Problem, daß z.B. bei einem Preis von 0.35 (oder auch 99,99) und höheren Arrtikelzahlen (z.B. 5 oder 7) JS als Ergebnis 2,4499999999 ausgibt, statt korrekt 2,45 zu liefern. Über das Runden auf zwei Nachkommastellen ließe sich das ja korrigieren. Oder doktore ich dann nur an Symptomen rum und sollte das Problem anders angehen?
Vielen Dank im voraus
Gruss
F-J
Mit round() lassen sich Kommazahlen in JS auf Ganzzahlen runden, so weit so gut.
Was aber, wenn ich auf 2 Stellen hinter dem Komma runden muß. Gibt's da eine Möglichkeit. Eine Methode des Math-Objekts dafür gibts nicht (jedenfalls so weit ich weiss).
Versuch mal:
x *= 100;
y = Math.round(x);
y /= 100;
Viele Gruesse, Thomas Hieck
Hallo Thomas,
Versuch mal:
x *= 100;
y = Math.round(x);
y /= 100;
zunächst mal vielen Dank, funktioniert einwandfrei.
Aber mal ganz dumm nachgefragt: Warum ist denn 2 * 99,99 nicht einfach 198,98, sondern 198,9799999?
Liegt wohl irgendwie an der internen Zahlendarstellung oder?
Tja, vielleicht sollte ich doch mal nen Informatik-Grundlagenkurs belegen ;-)
Ciao
F-J