Flashhilfe.de - Flash Community

Prototype: Runden (Klasse Extended) [Flash 8]

 


AntwortenRegistrieren Seite1  

Madokan#1
Benutzerbild von Madokan
Beiträge: 130
Wohnort: Berlin/Germany
Registriert: Mar 2002

23.04.2005, 21:59

Erweiterte Version

Prototype:
ActionScript:
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
// Runden.as
// --------------------------------------------------------------------
// 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:Number, pModus:String, pDezZeichen:String, pStellen: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(10, pStellen))/Math.pow(10, pStellen));
        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);
     }
}


Beispiel Aufruf:
ActionScript:
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
// Im Flash Film
// 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:
-----------------------------
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
-----------------------------
*/
<
[Flashstar]
http://www.flashstar.de
Schlagwörter: Extended, prototype, Runden
Werbung
Beiträge: 0
Registriert: Feb 2016



AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de