Flashhilfe.de - Flash Community

Prototype: Runden (Klasse) [Flash 8]

 


AntwortenRegistrieren Seite1  

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

23.04.2005, 15:01

Runden Klasse - ActionScript 2.0

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// --------------------------------------------------------------------
// Klasse: Runden (Runden.as)
//
// Definition: Runden.runden_extended(pZahl, Rundungsmodus, DezimalZeichen, Genauigkeit)
//
// pZahl - zu rundende Zahl
// pModus - Rundungsmodus (Auswahl: exc, dif, nat)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
//
// Syntax:
// gerundet_1 = Runden.runden_extended(zahl_1,"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)
//
// ---------------------------------------------------------------------
class Runden extends Number {
     // Runden - Ausführliche Fassung
   static function runden_extended(pZahl:Number, pModus:String, pDezZeichen:String, pStellen:Number) {
        var prezision = Math.pow(10, pStellen);
        if (pModus == "exc") {
           var resultat = String(Math.ceil(pZahl*prezision)/prezision);
        } else if (pModus == "dif") {
           var resultat = String(Math.floor(pZahl*prezision)/prezision);
        } else if (pModus == "nat") {
           var resultat = String(Math.round(pZahl*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 i = dezZahl.length;
        while (i<pStellen) {
           resultat += "0";
           i++;
        }
        resultat = resultat.split(".").join(pDezZeichen);
        if (pDezZeichen != ",") {
           return Number(resultat);
        }
        return resultat;
     }
     // Runden - Kurzfassung
   static function runden_short(pZahl:Number, pModus:String, pDezZeichen:String, pStellen:Number) {
        if (pModus == "exc") {
           return (Math.floor(pZahl)+pDezZeichen+Math.ceil(pZahl*Math.pow(10, pStellen)).toString().slice(-pStellen));
        } else if (pModus == "dif") {
           return (Math.floor(pZahl)+pDezZeichen+Math.floor(pZahl*Math.pow(10, pStellen)).toString().slice(-pStellen));
        } else if (pModus == "nat") {
           return (Math.floor(pZahl)+pDezZeichen+Math.round(pZahl*Math.pow(10, pStellen)).toString().slice(-pStellen));
        } else {
           return "Fehler: Modus fehlt!";
        }
     }
     // Runden - nur natürlicher Rundungsmodus
   static function runden_nat(pZahl:Number, pModus:String, pDezZeichen:String, pStellen:Number) {
        return (Math.floor(pZahl)+pDezZeichen+Math.round(pZahl*Math.pow(10, pStellen)).toString().slice(-pStellen));
     }
}


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
// Im Flash Film
// Verwenden - Beispiele
zahl_1 = 999.444536455;
zahl_2 = 999.444536455;
zahl_3 = 999.444536455;
zahl_4 = 999.44;

gerundet_1 = Runden.runden_extended(zahl_1,"exc", ",", 2);
gerundet_2 = Runden.runden_extended(zahl_2,"dif", ".", 3);
gerundet_3 = Runden.runden_extended(zahl_3,"nat", ".", 3);
gerundet_4 = Runden.runden_extended(zahl_4,"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: " + Runden.runden_nat(zahl_4,"nat", ",", 2))
[Flashstar]
http://www.flashstar.de
Schlagwörter: Extended, prototype, Runden

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   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de