Javascript aufrunden auf 2 Nachkommastellen?

3 Antworten

Bei Math.round() fallen, wie du richtig bemerkt hast, die Nachkommastellen weg.

Wenn du die Zahl aber vorher mit 100 multiplizierst, dann bleiben die ersten zwei Nachkommastellen erhalten. Und anschließend kannst du sie wieder durch 100 teilen, damit das Komma wieder am richtigen Platz ist.

Math.round(x*y*100)/100

const x = 0.1;
const y = 7.49;
alert( Math.round(x*y*100)/100 );

Eine noch einfachere Methode wäre, .toFixed() zu benutzen:

alert( (x*y).toFixed(2) );
Woher ich das weiß:Studium / Ausbildung – Bachelor in Informatik 👨🏻‍🎓

Müsste es nicht eigentlich gehen, die Zahl mit 100 zu multiplizieren, dann zu runden und danach wieder durch 100 zu teilen?

lllkrlrkewkrewr 
Fragesteller
 26.08.2021, 05:27

also alert(Math.round(x * y)* 100 / 100); oder wie ?

0
J0T4T4  26.08.2021, 05:28
@lllkrlrkewkrewr

Nein, Math.round(100 * x * y)/100. Durch die Multiplikation verschiebst du die Stellen einfach nur so, dass im Endeffekt auf 2 Nachkommastellen gerundet wird.

Vernünftige Round-Funktionen bieten aber eigentlich auch einen zweiten optionalen Parameter an, mit dem man die Nachkommastellen festlegen kann.

2

Ich verstehe nicht ganz.

0.1*7.49

auf 0.74 zu runden wäre falsch, 0.749 sind keine zwei NKSt.

Am Schluss ist 2.45 etwas komplett anderes als 2.40000....

lllkrlrkewkrewr 
Fragesteller
 26.08.2021, 05:24

dann 0.75, war ein schnelles beispiel.

es geht mir eigentlich nur darum das da nichtmehr unendlich zeichen ausgegeben werden sondern das nach 2 nachkommastellen oder 3 schluss ist.

0