JavaScript bietet von sich aus keine Funktion zum Runden einer Dezimalzahl mit Nachkommastelle, sondern rundet immer auf eine Ganzzahl. Dafür gibt es hier nun drei kleine Funktionen zum kaufmännischen Runden, Aufrunden und Abrunden mit einer beliebigen Anzahl an Nachkommastellen:
// Kaufmännisches Runden mit Nachkommastelle
function round_f(value, prec) {
var f = Math.pow(10, prec);
return (Math.round(value * f) / f);
}
// Aufrunden mit Nachkommastelle
function ceil_f(value, prec) {
var f = Math.pow(10, prec);
return (Math.ceil(value * f) / f);
}
// Abrunden mit Nachkommastelle
function floor_f(value, prec) {
var f = Math.pow(10, prec);
return (Math.floor(value * f) / f);
}Hier noch ein paar Beispielaufrufe:
// Beispielaufruf 1: Kaufmännisches Runden
var x = round_f(12.343, 0); // => 12
var x = round_f(12.343, 2); // => 12.34
var x = round_f(12.345, 2); // => 12.35
// Beispielaufruf 2: Aufrunden
var x = ceil_f(12.343, 0); // => 13
var x = ceil_f(12.345, 2); // => 12.35
// Beispielaufruf 3: Abrunden
var x = floor_f(12.343, 0); // => 12
var x = floor_f(12.345, 2); // => 12.34