 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
23.04.2005, 21:21
|
#1
|
|
TP-Moderator
Registriert seit: Oct 2002
Ort: Berlin/Germany
|
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(pModus, pDezZeichen, pStellen) {
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(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);
};
// 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 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.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 23:04 Uhr.
|
 |