Ergebnis 1 bis 2 von 2

Thema: Number.prototype.runden

  1. #1
    TP-Insider Avatar von Madokan
    Registriert seit
    Oct 2002
    Ort
    Berlin/Germany
    Beiträge
    855

    Post Number.prototype.runden

    Runden für die, die es ganz genau nehmen.

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

    // Verwenden - Beispiele
    zahl_1 999.444536455;
    zahl_2 999.444536455;
    zahl_3 999.444536455;
    zahl_4 999.44;

    gerundet_1 zahl_1.runden ("exc"","2);
    gerundet_2 zahl_2.runden ("dif""."3);
    gerundet_3 zahl_3.runden ("nat"","3);
    gerundet_4 zahl_4.runden ("nat"","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 ("-----------------------------"); 
    Liebe Grüsse
    Matze K.

  2. #2
    TP-Insider Avatar von Madokan
    Registriert seit
    Oct 2002
    Ort
    Berlin/Germany
    Beiträge
    855
    Kurzfassung:

    PHP-Code:
    // --------------------------------------------------------------------
    // Number.prototype.runden (round - shortversion)
    // 
    // Definition: zahl.runden(Rundungsmodus, DezimalZeichen, Genauigkeit)
    // 
    // pModus - Rundungsmodus (Auswahl: exc, dif, nat)
    // pDezZeichen - Dezimal Trennzeichen
    // pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
    // 
    // Syntax: zahl_variable.runden("exc", ",", 2)
    // 
    // Anmerkung zu pModus - folgende Modien stehen zur Verfügung:
    // "exc" :  (bsp: 10.1 -> 11 / 10.6 -> 11)
    // "dif" :  (bsp: 10.8 -> 10 / 10.6 -> 10)
    // "nat" :  (bsp: 10.1 -> 10 / 10.6 -> 11)
    // 
    // "exc" : ceil (Obergrenze - ist die nächstliegende Ganzzahl, die größer oder gleich der Zahl ist)
    // "dif" : floor (Untergrenze - ist die nächstliegende Ganzzahl, die kleiner oder gleich der angegebenen Zahl ist)
    // "nat" : round (Runden - rundet den Wert des Parameters x auf die nächstliegende Ganzzahl auf oder ab und gibt diese zurück)
    // 
    // ---------------------------------------------------------------------

    Number.prototype.runden = function(pModuspDezZeichenpStellen)
    {
        if (
    pModus == "exc") return (Math.floor(this)+pDezZeichen+Math.ceil(this*Math.pow(10pStellen)).toString().slice(-pStellen));             
       else if (
    pModus == "dif") return (Math.floor(this)+pDezZeichen+Math.floor(this*Math.pow(10pStellen)).toString().slice(-pStellen));
       else if (
    pModus == "nat") return (Math.floor(this)+pDezZeichen+Math.round(this*Math.pow(10pStellen)).toString().slice(-pStellen));
       else return 
    "Fehler: Modus fehlt!";
    };


    Number.prototype.runden_nat = function(pDezZeichenpStellen)
    {
     return (
    Math.floor(this)+pDezZeichen+Math.round(this*Math.pow(10pStellen)).toString().slice(-pStellen));
    };

    // Verwenden - Beispiele
    zahl_1 999.444536455;
    zahl_2 999.444536455;
    zahl_3 999.444536455;
    zahl_4 999.44;

    gerundet_1 zahl_1.runden ("exc"","2);
    gerundet_2 zahl_2.runden ("dif""."3);
    gerundet_3 zahl_3.runden ("nat"","3);
    gerundet_4 zahl_4.runden ("nat"","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 ("-----------------------------");
    trace ("Zahl 1 gerundet: " zahl_1.runden_nat(",",2)) 
    Liebe Grüsse
    Matze K.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51