Supportnet / Forum / Skripte(PHP,ASP,Perl...)
VBScript: Runden von Zahlen
Frage
Für euch sicherlich ein Klacks, aber ich beiß mir die Zähne aus.
Wie kann ich eine Zahl auf zwei Nachlommastelle runden?
[code]x = Round(12345678/1024/1024)[/code]
ergibt ganze Zahlen. Ist auch nicht schlecht, gefällt mir aber nicht.
[code]x = Round(12345678/1024/1024[2])[/code]
sowie
[code]x = Round(12345678/1024/1024[,2])[/code]
ergibt Fehlermeldung.
Danke an alle.
Gruß [u]MasterOfHardness[/u]
Antwort 1 von MasterOfHardness
Nachtrag:
ergibt auch 'ne Fehlermeldung
x = Round(12345678/1024/1024[.2])ergibt auch 'ne Fehlermeldung
Antwort 2 von semi
Versuch's so
round( (12345678/1024/1024)*100 ) / 100
round( (12345678/1024/1024)*100 ) / 100
Antwort 3 von robbie17
@masterofhardness
so ists richtig
du warst schon nah dran
die eckige klammer um [,2] bedeutet
daß die angabe der stellenanzahl optional ist
also auch weggelassen werden kann
so ists richtig
x = Round(12345678/1024/1024,2)
du warst schon nah dran
die eckige klammer um [,2] bedeutet
daß die angabe der stellenanzahl optional ist
also auch weggelassen werden kann
Antwort 4 von MasterOfHardness
Klasse semi. Damit geht's!
Doch ich war inzwischen auch nicht faul *grins*. Die Sache ist ganz einfach:
hat zum Erfolg geführt. Ich hatte in der Hilfe
die eckigen Klammern fälschlicherweise als Bestandteil der Anweisung betrachtet. Die Dinger zeigen natürlich nur an, dass das Argument optional ist.
Nun, ich danke dir.
Gruß MasterOfHardness
Doch ich war inzwischen auch nicht faul *grins*. Die Sache ist ganz einfach:
x = Round(12345678/1024/1024,2)hat zum Erfolg geführt. Ich hatte in der Hilfe
Zitat:
Beschreibung
Gibt eine Zahl zurück, die auf eine festgelegte Anzahl an Dezimalpunkten gerundet wurde.
Syntax
Round(Ausdruck [,AnzahlAnDezimalpunktn )
Die Syntax der Round-Funktion besteht aus folgenden Teilen:
[i]Teil Beschreibung
Ausdruck Erforderlich. Numerischer Ausdruck, der gerundet wird.
AnzahlAnDezimalpunkten Optional. Zahl, die angibt, wie viele Stellen rechts vom Dezimalpunkt beim Runden berücksichtigt werden. Wird dieser Wert ausgelassen, gibt die Round-Funktion Ganzzahlen zurück.
Beschreibung
Gibt eine Zahl zurück, die auf eine festgelegte Anzahl an Dezimalpunkten gerundet wurde.
Syntax
Round(Ausdruck [,AnzahlAnDezimalpunktn )
Die Syntax der Round-Funktion besteht aus folgenden Teilen:
[i]Teil Beschreibung
Ausdruck Erforderlich. Numerischer Ausdruck, der gerundet wird.
AnzahlAnDezimalpunkten Optional. Zahl, die angibt, wie viele Stellen rechts vom Dezimalpunkt beim Runden berücksichtigt werden. Wird dieser Wert ausgelassen, gibt die Round-Funktion Ganzzahlen zurück.
die eckigen Klammern fälschlicherweise als Bestandteil der Anweisung betrachtet. Die Dinger zeigen natürlich nur an, dass das Argument optional ist.
Nun, ich danke dir.
Gruß MasterOfHardness
Antwort 5 von MasterOfHardness
@robbie17
Tschuldigung, sehe jetzt erst, dass du gepostet hast. Dank auch dir. Wie du siehst, bin ich auch auf die Lösung gekommen *grins*
Tschuldigung, sehe jetzt erst, dass du gepostet hast. Dank auch dir. Wie du siehst, bin ich auch auf die Lösung gekommen *grins*
Antwort 6 von robbie17
.. und hast mir dabei auch geholfen
wußte vorher gar nicht daß es diese funktion gibt
habs auch immer wie semi gemacht nur mit cint bzw clng
wußte vorher gar nicht daß es diese funktion gibt
habs auch immer wie semi gemacht nur mit cint bzw clng
Antwort 7 von PeterMace
Allerdings hat diese Funktion ein Problem.
Wenn man z.B. 1,225 auf zwei Nachkommastellen damit runden möchte kommt 1,22 raus.
x= 1,225
Round(x,2) => 1,22
Scheinbar rundet die Funktion zur nächsten Integer. Wenn beide Zahlen gleich weit entfernt sind geht sie zur nächsten runden Zahl. Also gefällt ihr in dem fall die 2 besser als die 3. Anderes Beispiel
x = 1,235
Round(x,2) => 1,24
Scheint ein bekanntes Problem zu sein. Daher bringt die Rundungsfunktion in meinen Augen nicht unbedingt viel.
Wenn man z.B. 1,225 auf zwei Nachkommastellen damit runden möchte kommt 1,22 raus.
x= 1,225
Round(x,2) => 1,22
Scheinbar rundet die Funktion zur nächsten Integer. Wenn beide Zahlen gleich weit entfernt sind geht sie zur nächsten runden Zahl. Also gefällt ihr in dem fall die 2 besser als die 3. Anderes Beispiel
x = 1,235
Round(x,2) => 1,24
Scheint ein bekanntes Problem zu sein. Daher bringt die Rundungsfunktion in meinen Augen nicht unbedingt viel.
Antwort 8 von heinz ketchup
Zitat:
Scheint ein bekanntes Problem zu sein.
Scheint ein bekanntes Problem zu sein.
bekannt schon - aber kein problem
die funktion rundet lediglich wissenschaftlich korrekt!
wenn beide zahlen gleich weit entfernt sind
wird abgerundet wenn die letzte vorkommastelle gerade ist
und aufgerundet wenn sie ungerade ist
so soll gewährleistet werden daß statistisch genauso oft auf- wie abgerundet wird
denn wenn man immer aufrundet (wie in der schule) verfälscht dies den mittelwert einer datenmenge!
Antwort 9 von PeterMace
Nun, dass versuche mal einen Kunden zu erklären, der diese Rundung in einem Programm benutzen möchte und ihm dort Geld verloren geht..
Antwort 10 von heinz ketchup
es steht dir ja frei eigene funktionen zu programmieren
die sich nicht an mathematische konventionen halten :)
die sich nicht an mathematische konventionen halten :)
Antwort 11 von PeterMace
Blieb mir ja leider nichts anderes übrig. Aber man erspart sich ja gerne Arbeit ;)
Antwort 12 von heinz ketchup
stimmt :)
aber mal was andreas:
wie hast du gemerkt daß ich gepostet habe?
hast du den thread auf der startseite vom sn gesehen
oder nur im javascriptforum?
ich kann den thread nämlich nicht auf der startseite sehen ..
aber mal was andreas:
wie hast du gemerkt daß ich gepostet habe?
hast du den thread auf der startseite vom sn gesehen
oder nur im javascriptforum?
ich kann den thread nämlich nicht auf der startseite sehen ..
Antwort 13 von PeterMace
*kopf kratz* Ich habe die Mailbenachrichtigung bei einer Antwort an, daher sehe ich es wenn du postest.

