Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 23.04.2005, 22:21   #1
TP-Moderator
 
Benutzerbild von Madokan
 
Registriert seit: Oct 2002
Ort: Berlin/Germany
Madokan bringt sich richtig ein
Post

Number.prototype.runden_extended


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.
Madokan ist offline   Mit Zitat antworten


Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Flash > Sammlung Actionscript 1 und 2
Number.prototype.runden_extended Number.prototype.runden_extended
« Runden (Klasse - ActionScript 2.0) | Runden (Klasse Extended - ActionScript 2.0) »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:02 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67