Wenn du in JavaScript runden willst, stolperst du schnell über Nachkommastellen und Floating-Point-Effekte. Mit den richtigen Funktionen kannst du zuverlässig runden, javascript aufrunden und Werte sauber formatieren.
Die Basics: runden javascript mit Math
Fürs klassische js runden auf ganze Zahlen gibt es drei Standardfunktionen:
- Math.round(x): rundet zur nächsten ganzen Zahl
- Math.floor(x): rundet ab
- Math.ceil(x): rundet auf
console.log(Math.round(2.5)); // 3
console.log(Math.floor(2.9)); // 2
console.log(Math.ceil(2.1)); // 3
Wenn du explizit javascript aufrunden willst, ist Math.ceil dein Werkzeug.
JavaScript runden auf Nachkommastellen
Math.round kann nur auf ganze Zahlen runden. Für javascript runden auf nachkommastellen verschiebst du das Komma, rundest und verschiebst zurück.
function roundTo(value, decimals) {
const factor = 10 ** decimals;
return Math.round(value * factor) / factor;
}
console.log(roundTo(3.14159, 2)); // 3.14
console.log(roundTo(1.005, 2)); // 1.01? nicht immer, siehe unten
Diese Methode ist simpel, aber sie trifft auf die bekannte Floating-Point-Problematik. Manche Dezimalzahlen lassen sich im Binärformat nicht exakt darstellen.
Warum 1.005 nicht immer 1.01 wird
JavaScript nutzt IEEE-754 Floating-Point. Dadurch kann ein Wert intern minimal kleiner oder größer sein als erwartet. Bei Rundungen wirkt sich das aus.
Ein pragmatischer Ansatz ist, vor dem Runden eine kleine Korrektur einzubauen:
function roundToSafe(value, decimals) {
const factor = 10 ** decimals;
return Math.round((value + Number.EPSILON) * factor) / factor;
}
console.log(roundToSafe(1.005, 2)); // 1.01
Das ist keine mathematische Wunderwaffe, aber für typische UI-, Preis- und Anzeige-Logik funktioniert es meist zuverlässig.
Aufrunden auf Nachkommastellen
Manchmal willst du nicht “normal” runden, sondern immer nach oben, zum Beispiel bei Mindestmengen oder Zeitfenstern. Auch das geht mit dem Komma-Trick.
function ceilTo(value, decimals) {
const factor = 10 ** decimals;
return Math.ceil(value * factor) / factor;
}
console.log(ceilTo(2.341, 2)); // 2.35
Damit deckst du javascript aufrunden auch für Nachkommastellen ab.
Formatieren vs. Rechnen: toFixed ist Anzeige, nicht Wahrheit
toFixed ist praktisch, aber es liefert einen String, nicht zwingend einen “besseren” Zahlwert.
const x = 2.345;
console.log(x.toFixed(2)); // "2.35"
Wenn du weiterrechnen willst, parse bewusst zurück:
const y = Number(x.toFixed(2));
Warnhinweis: Für finanzielle Berechnungen ist das Rechnen mit Cent-Integern oft stabiler als mit Floats, je nach Projektanforderung.
Ein kleines Cheat-Sheet
- js runden auf ganze Zahl: Math.round(x)
- immer abrunden: Math.floor(x)
- javascript aufrunden: Math.ceil(x)
- javascript runden auf nachkommastellen: roundToSafe(x, n)
- immer aufrunden auf Nachkommastellen: ceilTo(x, n)
Fazit
runden javascript ist einfach, solange du weißt, ob du normal runden oder immer aufrunden willst und ob du einen Rechenwert oder nur eine Anzeige brauchst. Mit Math.round, Math.ceil und einem kleinen Helper für Nachkommastellen bekommst du in JavaScript runden sauber in den Griff.
PS: Für mehr JavaScript: Hier sind 5 typische Anfängerfehler und die pragmatischen Lösungen.