Erweiterte Version - Nun sind Negative Zahlen, Nullenauffüllung und fehlerhafte Parameter kein Problem mehr.

PHP-Code:
// --------------------------------------------------------------------
// Number.prototype.runden_extended
//
// Definition: zahl.runden(Rundungsmodus, DezimalZeichen, Genauigkeit)
//
// pModus - Rundungsmodus (Auswahl: ceil, floor, round)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
//
// Syntax: zahl_variable.runden("ceil", ",", 2)
//
// Anmerkung zu pModus - folgende Modien stehen zur Verfügung:
// "ceil" :  (bsp: 10.1 -> 11 / 10.6 -> 11)
// "floor" :  (bsp: 10.8 -> 10 / 10.6 -> 10)
// "round" :  (bsp: 10.1 -> 10 / 10.6 -> 11)
//
// "ceil" : ceil (Obergrenze - ist die nächstliegende Ganzzahl, die größer oder gleich der Zahl ist)
// "floor" : floor (Untergrenze - ist die nächstliegende Ganzzahl, die kleiner oder gleich der angegebenen Zahl ist)
// "round" : round (Runden - rundet den Wert des Parameters x auf die nächstliegende Ganzzahl auf oder ab und gibt diese zurück)
//
// ---------------------------------------------------------------------
Number.prototype.runden_extended = function(pModuspDezZeichenpStellen) {
    if (
"ceil-floor-round".indexOf(pModus) == -1) {
        return 
"runden-Fehler: unbekannter Modus!";
    }
    if (
".,".indexOf(pDezZeichen) == -1) {
        return 
"runden-Fehler: unbekanntes DezZeichen!";
    }
    if (
pStellen != Math.abs(Math.round(pStellen))) {
        return 
"runden-Fehler: ungeeignete Stellenangabe!";
    }
    var 
resultat String(Math[pModus](this*Math.pow(10pStellen))/Math.pow(10pStellen));
    if (
pStellen && resultat.indexOf("e") == -1) {
        
resultat += (resultat.indexOf(".") != -1) ? "" ".";
        var 
nullen resultat.indexOf(".")-resultat.length+1+pStellen;
        while (
nullen--) {
            
resultat += "0";
        }
    }
    return 
resultat.split(".").join(pDezZeichen);
};

// Verwenden - Beispiele
// Positive Werte
zahl_1 999.444536455;
zahl_2 999.444536455;
zahl_3 999.444536455;
zahl_4 999.44;
gerundet_1 zahl_1.runden_extended("ceil"","2);
gerundet_2 zahl_2.runden_extended("floor""."3);
gerundet_3 zahl_3.runden_extended("round"","3);
gerundet_4 zahl_4.runden_extended("round"","3);
trace("-----------------------------");
trace("Zahl 1 original: "+zahl_1);
trace("Zahl 1 gerundet: "+gerundet_1);
trace("Zahl 2 original: "+zahl_2);
trace("Zahl 2 gerundet: "+gerundet_2);
trace("Zahl 3 original: "+zahl_3);
trace("Zahl 3 gerundet: "+gerundet_3);
trace("Zahl 4 original: "+zahl_4);
trace("Zahl 4 gerundet: "+gerundet_4);
trace("-----------------------------");

// Negative Werte + Auffüllung
zahl_1 = -0.00123456789e-12;
zahl_2 = -123.456789;
zahl_3 = -0.35;
zahl_4 20;
trace("ceil : "+zahl_1.runden_extended("ceil"","0));
trace("floor: "+zahl_1.runden_extended("floor""."1));
trace("round: "+zahl_1.runden_extended("round"","20));
trace("ceil : "+zahl_2.runden_extended("ceil"","0));
trace("floor: "+zahl_2.runden_extended("floor""."4));
trace("round: "+zahl_2.runden_extended("round"","4));
trace("ceil : "+zahl_3.runden_extended("ceil"","0));
trace("floor: "+zahl_3.runden_extended("floor""."4));
trace("round: "+zahl_3.runden_extended("round"","4));
trace("ceil : "+zahl_4.runden_extended("ceil"","0));
trace("floor: "+zahl_4.runden_extended("floor""."4));
trace("round: "+zahl_4.runden_extended("round"","4));
trace("-----------------------------"); 
Resultate:
PHP-Code:
-----------------------------
Zahl 1 original999.444536455
Zahl 1 gerundet
999,45
Zahl 2 original
999.444536455
Zahl 2 gerundet
999.444
Zahl 3 original
999.444536455
Zahl 3 gerundet
999,445
Zahl 4 original
999.44
Zahl 4 gerundet
999,440
-----------------------------
ceil 0
floor
: -0.1
round
: -1,23457e-15
ceil 
: -123
floor
: -123.4568
round
: -123,4568
ceil 
0
floor
: -0.3500
round
: -0,3500
ceil 
20
floor
20.0000
round
20,0000
----------------------------- 
Liebe Grüsse
Matze K.