 |
| 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, Fragen 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, 12:14
|
#1
|
|
TP-Moderator
Registriert seit: Oct 2002
Ort: Berlin/Germany
|
Number.prototype.runden
Runden für die, die es ganz genau nehmen.
PHP-Code:
// --------------------------------------------------------------------
// Number.prototype.runden
//
// Definition: zahl.runden(Rundungsmodus, DezimalZeichen, Genauigkeit)
//
// pModus - Rundungsmodus (Auswahl: exc, dif, nat)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
//
// Syntax: zahl_variable.runden("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)
//
// ---------------------------------------------------------------------
Number.prototype.runden = function (pModus, pDezZeichen, pStellen)
{
var prezision = Math.pow (10, pStellen);
if (pModus == "exc")
{
var resultat = String (Math.ceil (this * prezision) / prezision);
}
else if (pModus == "dif")
{
var resultat = String (Math.floor (this * prezision) / prezision);
}
else if (pModus == "nat")
{
var resultat = String (Math.round (this * 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;
};
// Verwenden - Beispiele
zahl_1 = 999.444536455;
zahl_2 = 999.444536455;
zahl_3 = 999.444536455;
zahl_4 = 999.44;
gerundet_1 = zahl_1.runden ("exc", ",", 2);
gerundet_2 = zahl_2.runden ("dif", ".", 3);
gerundet_3 = zahl_3.runden ("nat", ",", 3);
gerundet_4 = zahl_4.runden ("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 ("-----------------------------");
Liebe Grüsse
Matze K.
|
|
|
23.04.2005, 13:04
|
#2
|
|
TP-Moderator
Registriert seit: Oct 2002
Ort: Berlin/Germany
|
Kurzfassung:
PHP-Code:
// --------------------------------------------------------------------
// Number.prototype.runden (round - shortversion)
//
// Definition: zahl.runden(Rundungsmodus, DezimalZeichen, Genauigkeit)
//
// pModus - Rundungsmodus (Auswahl: exc, dif, nat)
// pDezZeichen - Dezimal Trennzeichen
// pStellen - Prezision (Genauigkeit) - legt die Anzahl der Stellen nach dem Dezimalzeichen fest
//
// Syntax: zahl_variable.runden("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)
//
// ---------------------------------------------------------------------
Number.prototype.runden = function(pModus, pDezZeichen, pStellen)
{
if (pModus == "exc") return (Math.floor(this)+pDezZeichen+Math.ceil(this*Math.pow(10, pStellen)).toString().slice(-pStellen));
else if (pModus == "dif") return (Math.floor(this)+pDezZeichen+Math.floor(this*Math.pow(10, pStellen)).toString().slice(-pStellen));
else if (pModus == "nat") return (Math.floor(this)+pDezZeichen+Math.round(this*Math.pow(10, pStellen)).toString().slice(-pStellen));
else return "Fehler: Modus fehlt!";
};
Number.prototype.runden_nat = function(pDezZeichen, pStellen)
{
return (Math.floor(this)+pDezZeichen+Math.round(this*Math.pow(10, pStellen)).toString().slice(-pStellen));
};
// Verwenden - Beispiele
zahl_1 = 999.444536455;
zahl_2 = 999.444536455;
zahl_3 = 999.444536455;
zahl_4 = 999.44;
gerundet_1 = zahl_1.runden ("exc", ",", 2);
gerundet_2 = zahl_2.runden ("dif", ".", 3);
gerundet_3 = zahl_3.runden ("nat", ",", 3);
gerundet_4 = zahl_4.runden ("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: " + zahl_1.runden_nat(",",2))
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 12:27 Uhr.
|
 |