TP Underground Lounge 07/08
-


Hinweise


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

Runden (Klasse Extended - ActionScript 2.0)


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

Runden.as
PHP-Code:
// --------------------------------------------------------------------
// Klasse: Runden (Extended)
// 
// Definition: Runden.runden_extended(pZahl, Rundungsmodus, DezimalZeichen, Genauigkeit)
// 
// pZahl - zu rundende Zahl
// pModus - Rundungsmodus (Auswahl: ceil, floor, round)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
// 
// Syntax:
// gerundet_1 = Runden.runden_extended(zahl_1,"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)
// 
// ---------------------------------------------------------------------
class Runden extends Number {    
    static function 
runden_extended(pZahl:NumberpModus:StringpDezZeichen:StringpStellen:Number) {
        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](pZahl*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);
    }

Im Flash Film
PHP-Code:
// Verwenden - Beispiele
// Positive Werte
zahl_1 999.444536455;
zahl_2 999.444536455;
zahl_3 999.444536455;
zahl_4 999.44;
gerundet_1 Runden.runden_extended(zahl_1"ceil"","2);
gerundet_2 Runden.runden_extended(zahl_2"floor""."3);
gerundet_3 Runden.runden_extended(zahl_3"round"","3);
gerundet_4 Runden.runden_extended(zahl_4"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 : "+Runden.runden_extended(zahl_1"ceil"","0));
trace("floor: "+Runden.runden_extended(zahl_1"floor""."1));
trace("round: "+Runden.runden_extended(zahl_1"round"","20));
trace("ceil : "+Runden.runden_extended(zahl_2"ceil"","0));
trace("floor: "+Runden.runden_extended(zahl_2"floor""."4));
trace("round: "+Runden.runden_extended(zahl_2"round"","4));
trace("ceil : "+Runden.runden_extended(zahl_3"ceil"","0));
trace("floor: "+Runden.runden_extended(zahl_3"floor""."4));
trace("round: "+Runden.runden_extended(zahl_3"round"","4));
trace("ceil : "+Runden.runden_extended(zahl_4"ceil"","0));
trace("floor: "+Runden.runden_extended(zahl_4"floor""."4));
trace("round: "+Runden.runden_extended(zahl_4"round"","4));
trace("-----------------------------"); 
Resultate:
Zitat:
-----------------------------
Zahl 1 original: 999.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
Runden (Klasse Extended - ActionScript 2.0) Runden (Klasse Extended - ActionScript 2.0)
« Number.prototype.runden_extended | Alphatween für Buttons »

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 08:13 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