JS: Runden mit Nachkommastelle

13 Oktober 2009 in Code Snippets, JS Kommentieren »

JavaScript bietet von sich aus keine Funktion zum Runden einer Dezimalzahl mit Nach­kommastelle, 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

Einen Kommentar hinterlassen