Aufrunden einer Kommazahl in vbs

951 views
Skip to first unread message

Tom

unread,
Feb 12, 2010, 9:37:01 AM2/12/10
to
Hallo zusammen,
Benötige dringend eine Funktion zum Aufrunden in VBS:

ZB soll die Zahl 14,15 auf 15 aufgerundet werden und die Zahl 14,55 auf 15
also immer auf den nächst höheren ganzzahligen wert. Kann mir da bitte jemand
helfen.

Pegasus [MVP]

unread,
Feb 12, 2010, 11:03:04 AM2/12/10
to

"Tom" <T...@discussions.microsoft.com> said this in news item
news:D4813E4F-FB9C-4905...@microsoft.com...

Wie wär's mit so was:
if int(a) <> a then a = Int(a) + 1

Erhard Wagner

unread,
Feb 16, 2010, 7:14:46 AM2/16/10
to
Am 12.02.2010 17:03, schrieb Pegasus [MVP]:
>
>
>> ZB soll die Zahl 14,15 auf 15 aufgerundet werden und die Zahl 14,55
>> auf 15
>> also immer auf den nächst höheren ganzzahligen wert. Kann mir da bitte
>> jemand
>> helfen.
>
> Wie wär's mit so was:
> if int(a) <> a then a = Int(a) + 1

Einfacher geht's mit

Int( a + 0.99 )

Erhard

Pegasus [MVP]

unread,
Feb 16, 2010, 9:51:08 AM2/16/10
to

"Erhard Wagner" <erhard...@wagner-systems.de> said this in news item
news:#R0kfGwr...@TK2MSFTNGP02.phx.gbl...

Ist tatsächlich einfacher und eleganter, aber bekommt man auch die
erwünschte Antwort?

a = 0.001
wscript.echo Int( a + 0.99 )

Erhard Wagner

unread,
Feb 16, 2010, 6:34:34 PM2/16/10
to

Natürlich muss man sich vorher Gedanken darüber machen, wie genau mein
Ergebnis denn sein soll oder welche Genauigkeit kann ich mit meiner
Maschine überhaupt erreichen?

I.A. ist die Anzahl der Nachkommastellen endlich, da hindert mich
niemand daran 0.999999999999 zu schreiben. ;-)

Was aber mache ich, wenn (1/3) + (1/3) + (1/3) = 0.99998 ergibt? :-(

Pegasus [MVP]

unread,
Feb 16, 2010, 7:07:03 PM2/16/10
to

"Erhard Wagner" <erhard...@wagner-systems.de> said this in news item

news:OamgXC2r...@TK2MSFTNGP04.phx.gbl...

Das hat ja eigentlich nichts mit der ursprünglichen Frage zu tun. Zudem
liegt dein Vorschlag von 0.99 meilenweit von der tatsächlichen Genauigkeit
von VB Script weg. Deine Idee ist ausgezeichnet, wenn du sie mit dem
Nachsatz "brauchbar für Zahlen mit einer oder zwei Stellen nach dem Komma"
versiehst.

Erhard Wagner

unread,
Feb 17, 2010, 5:29:07 AM2/17/10
to
Am 17.02.2010 01:07, schrieb Pegasus [MVP]:
>
>
>>>> Einfacher geht's mit
>>>>
>>>> Int( a + 0.99 )
>>>>
>>>> Erhard
>>>
>>> Ist tatsächlich einfacher und eleganter, aber bekommt man auch die
>>> erwünschte Antwort?
>>>
>>> a = 0.001
>>> wscript.echo Int( a + 0.99 )
>>>
>>
>> Natürlich muss man sich vorher Gedanken darüber machen, wie genau mein
>> Ergebnis denn sein soll oder welche Genauigkeit kann ich mit meiner
>> Maschine überhaupt erreichen?
>>
>> I.A. ist die Anzahl der Nachkommastellen endlich, da hindert mich
>> niemand daran 0.999999999999 zu schreiben. ;-)
>>
>> Was aber mache ich, wenn (1/3) + (1/3) + (1/3) = 0.99998 ergibt? :-(
>
> Das hat ja eigentlich nichts mit der ursprünglichen Frage zu tun. Zudem
> liegt dein Vorschlag von 0.99 meilenweit von der tatsächlichen
> Genauigkeit von VB Script weg. Deine Idee ist ausgezeichnet, wenn du sie
> mit dem Nachsatz "brauchbar für Zahlen mit einer oder zwei Stellen nach
> dem Komma" versiehst.

Du hast natürlich Recht, eine "moderne" Windows-Maschine hat i.a. eine
weit höhere Genauigkeit als 5 Stellen nach dem Komma.

Ich wollte mit meinem letzten Beitrag nur die Sensibilität wecken, wie
genau mein Ergebnis denn wirklich ist.

Wenn a das Ergebnis eines langen, komplizierten Algorithmus ist, muss
ich entscheiden können ob 3.99 oder 4.01 näher am tatsächlichen Ergebnis
liegt.

Bei einfachen Schulaufgaben (+-/*) kann man meist auf solche
Betrachtungen verzichten.

arminstrauss

unread,
Apr 29, 2010, 9:59:13 AM4/29/10
to
mein vorschlag:

-Int(-x)

Tom wrote:

Aufrunden einer Kommazahl in vbs
12-Feb-10

Hallo zusammen,
Ben??tige dringend eine Funktion zum Aufrunden in VBS:

ZB soll die Zahl 14,15 auf 15 aufgerundet werden und die Zahl 14,55 auf 15

also immer auf den n??chst h??heren ganzzahligen wert. Kann mir da bitte jemand
helfen.

Previous Posts In This Thread:

On Friday, February 12, 2010 9:37 AM
Tom wrote:

Aufrunden einer Kommazahl in vbs
Hallo zusammen,
Ben??tige dringend eine Funktion zum Aufrunden in VBS:

ZB soll die Zahl 14,15 auf 15 aufgerundet werden und die Zahl 14,55 auf 15

also immer auf den n??chst h??heren ganzzahligen wert. Kann mir da bitte jemand
helfen.

On Friday, February 12, 2010 11:03 AM
Pegasus [MVP] wrote:

Wie w??r's mit so was:if int(a) <> a then a = Int(a) + 1
Wie w??r's mit so was:


if int(a) <> a then a = Int(a) + 1

On Tuesday, February 16, 2010 7:14 AM
Erhard Wagner wrote:

Am 12.02.2010 17:03, schrieb Pegasus [MVP]:Einfacher geht's mitInt( a + 0.


Am 12.02.2010 17:03, schrieb Pegasus [MVP]:

Einfacher geht's mit

Int( a + 0.99 )

Erhard

On Tuesday, February 16, 2010 9:51 AM
Pegasus [MVP] wrote:

"Erhard Wagner" <erhard.wagner@wagner-systems.


"Erhard Wagner" <erhard...@wagner-systems.de> said this in news item

Ist tats??chlich einfacher und eleganter, aber bekommt man auch die
erw??nschte Antwort?

a = 0.001
wscript.echo Int( a + 0.99 )

On Tuesday, February 16, 2010 6:34 PM
Erhard Wagner wrote:

Am 16.02.2010 15:51, schrieb Pegasus [MVP]:Nat??


Am 16.02.2010 15:51, schrieb Pegasus [MVP]:

Nat??rlich muss man sich vorher Gedanken dar??ber machen, wie genau mein


Ergebnis denn sein soll oder welche Genauigkeit kann ich mit meiner

Maschine ??berhaupt erreichen?

I.A. ist die Anzahl der Nachkommastellen endlich, da hindert mich
niemand daran 0.999999999999 zu schreiben. ;-)

Was aber mache ich, wenn (1/3) + (1/3) + (1/3) = 0.99998 ergibt? :-(

On Tuesday, February 16, 2010 7:07 PM
Pegasus [MVP] wrote:

"Erhard Wagner" <erhard.wagner@wagner-systems.


"Erhard Wagner" <erhard...@wagner-systems.de> said this in news item

Das hat ja eigentlich nichts mit der urspr??nglichen Frage zu tun. Zudem
liegt dein Vorschlag von 0.99 meilenweit von der tats??chlichen Genauigkeit


von VB Script weg. Deine Idee ist ausgezeichnet, wenn du sie mit dem

Nachsatz "brauchbar f??r Zahlen mit einer oder zwei Stellen nach dem Komma"
versiehst.

On Wednesday, February 17, 2010 5:29 AM
Erhard Wagner wrote:

Am 17.02.2010 01:07, schrieb Pegasus [MVP]:Du hast nat??


Am 17.02.2010 01:07, schrieb Pegasus [MVP]:

Du hast nat??rlich Recht, eine "moderne" Windows-Maschine hat i.a. eine
weit h??here Genauigkeit als 5 Stellen nach dem Komma.

Ich wollte mit meinem letzten Beitrag nur die Sensibilit??t wecken, wie


genau mein Ergebnis denn wirklich ist.

Wenn a das Ergebnis eines langen, komplizierten Algorithmus ist, muss

ich entscheiden k??nnen ob 3.99 oder 4.01 n??her am tats??chlichen Ergebnis
liegt.

Bei einfachen Schulaufgaben (+-/*) kann man meist auf solche
Betrachtungen verzichten.


Submitted via EggHeadCafe - Software Developer Portal of Choice
WPF GridView Sample To Insert, Update, and Delete Records
http://www.eggheadcafe.com/tutorials/aspnet/fc9a5bf6-f5bb-4443-a92a-c9a46fd3aeb2/wpf-gridview-sample-to-in.aspx

Reply all
Reply to author
Forward
0 new messages