Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wie rundet man eigentlich richtig?

123 views
Skip to first unread message

Dietmar Tumpfer

unread,
Nov 23, 2001, 11:18:55 AM11/23/01
to
Hallo,

dumme Frage: Ab welcher Ziffer hinter dem Komma wird nun eigentlich
gerundet? Hintergrund: In VB wird 0,5 gerundet zu 0, während Crystal Reports
aus 0,5 eine 1 macht...

Dietmar


Michael Schüller

unread,
Nov 23, 2001, 11:45:31 AM11/23/01
to

"Dietmar Tumpfer" <die...@ts-data.it> schrieb im Newsbeitrag
news:#1$tpqDdBHA.2116@tkmsftngp02...

Mathematisch richtig ist, ab 0,5 aufzurunden.

Gruß
--
Michael
michael....@gmx.de


Michael Schüller

unread,
Nov 23, 2001, 11:59:37 AM11/23/01
to

"Michael Schüller" <michael....@gmx.de> schrieb im Newsbeitrag
news:9tlug6$org$05$1...@news.t-online.com...

> Mathematisch richtig ist, ab 0,5 aufzurunden.

Bzw. natürlich auch 0,495 zu 0,5 zu runden.
Wenn Du in VB mathematisch korrekt runden willst musst Du also z.B. beim
Runden auf Ganzzahlen zu der zu rundenen Zahl 0,1 addieren, beim Runden auf
die erste Nachkommastelle 0,01, auf die zweite Nachkommastelle 0,001 usw.

Gruß
--
Michael
michael....@gmx.de


Ingo Moch

unread,
Nov 23, 2001, 12:34:42 PM11/23/01
to
Hallo Dietmar,

"Dietmar Tumpfer" <die...@ts-data.it> schrieb:

> Ab welcher Ziffer hinter dem Komma wird nun eigentlich
> gerundet? Hintergrund: In VB wird 0,5 gerundet zu 0

> während Crystal Reports aus 0,5 eine 1 macht...

Das haengt von der verwendeten Methode ab. Im
allgemeinen gibt es drei uebliche Methoden:

- Nachkommazahlen abschneiden (VB: n = Int(0.5))
- mathematisch runden (VB6: n = Round(0.5))
- kaufmaennisch runden

Es gibt also kein richtig oder falsch sondern nur anders.

HTH
Ingo

Michael Schüller

unread,
Nov 23, 2001, 3:36:46 PM11/23/01
to
"Ingo Moch" <myjun...@gmx.de> schrieb im Newsbeitrag
news:OHidnCFdBHA.1900@tkmsftngp04...

Hallo Ingo,

> Das haengt von der verwendeten Methode ab. Im
> allgemeinen gibt es drei uebliche Methoden:
>
> - Nachkommazahlen abschneiden (VB: n = Int(0.5))
> - mathematisch runden (VB6: n = Round(0.5))

Nö, VB rundet _nicht_ mathematisch. Mathematisch ist 0,5 gerundet = 1, VB
rundet aber 0,5 auf 0. Das ist mathematisch falsch.

Gruß
--
Michael
michael....@gmx.de


Thorsten Albers

unread,
Nov 23, 2001, 5:03:17 PM11/23/01
to
Michael Schüller <michael....@gmx.de> schrieb im Beitrag
<9tmc1p$9gk$02$1...@news.t-online.com>...

> "Ingo Moch" <myjun...@gmx.de> schrieb im Newsbeitrag
> news:OHidnCFdBHA.1900@tkmsftngp04...
> > Das haengt von der verwendeten Methode ab. Im
> > allgemeinen gibt es drei uebliche Methoden:
> > - Nachkommazahlen abschneiden (VB: n = Int(0.5))
> > - mathematisch runden (VB6: n = Round(0.5))
> Nö, VB rundet _nicht_ mathematisch. Mathematisch ist 0,5 gerundet = 1, VB
> rundet aber 0,5 auf 0. Das ist mathematisch falsch.

Und wieder eine Lehrstunde in "Wer lesen kann, ist klar im Vorteil!".

----------------------------------------------------------------------
THORSTEN ALBERS Universität Freiburg
albers@
uni-freiburg.de
----------------------------------------------------------------------

Thorsten Albers

unread,
Nov 23, 2001, 5:01:34 PM11/23/01
to
Michael Schüller <michael....@gmx.de> schrieb im Beitrag
<9tlvaj$80n$03$1...@news.t-online.com>...

> Bzw. natürlich auch 0,495 zu 0,5 zu runden.
> Wenn Du in VB mathematisch korrekt runden willst musst Du also z.B. beim
> Runden auf Ganzzahlen zu der zu rundenen Zahl 0,1 addieren, beim Runden
auf
> die erste Nachkommastelle 0,01, auf die zweite Nachkommastelle 0,001 usw.

Also, dann: 0,5 + 0,1 = 0,6 - und was jetzt?

Michael Schüller

unread,
Nov 24, 2001, 3:50:55 AM11/24/01
to

"Thorsten Albers" <albe...@SPAMuni-freiburg.de> schrieb im Newsbeitrag
news:01c1746a$5fdf2720$LocalHost@albers...

> > Wenn Du in VB mathematisch korrekt runden willst musst Du also z.B. beim
> > Runden auf Ganzzahlen zu der zu rundenen Zahl 0,1 addieren, beim Runden
> auf
> > die erste Nachkommastelle 0,01, auf die zweite Nachkommastelle 0,001
usw.
>
> Also, dann: 0,5 + 0,1 = 0,6 - und was jetzt?

Runden! Was sonst?!

--
Michael
michael....@gmx.de


Ingo Moch

unread,
Nov 24, 2001, 5:32:55 AM11/24/01
to
Hallo Michael,

"Michael Schüller" <michael....@gmx.de> schrieb:

> "Ingo Moch" <myjun...@gmx.de> schrieb

> > Das haengt von der verwendeten Methode ab. Im
> > allgemeinen gibt es drei uebliche Methoden:
> >
> > - Nachkommazahlen abschneiden (VB: n = Int(0.5))
> > - mathematisch runden (VB6: n = Round(0.5))

> Nö, VB rundet _nicht_ mathematisch. Mathematisch ist 0,5
> gerundet = 1, VB rundet aber 0,5 auf 0. Das ist
> mathematisch falsch.

Du schreibt hier anscheinend von der implizierten Rundungs-
methode, die VB anwendet. Die habe ich aber aufgrund der
Verstaendlichkeit ganz weggelassen (mal abgesehen davon,
dass darauf IHMO besser ganz verzichtet werden sollte.
Dietmars Problem ist z. B. daraus resultiert).

Tschau
Ingo

Erik Reischl

unread,
Nov 24, 2001, 6:07:12 AM11/24/01
to
Hallöchen!

"Michael Schüller" <michael....@gmx.de> wrote in message
news:9tnn29$a0v$05$1...@news.t-online.com...


>
> "Thorsten Albers" <albe...@SPAMuni-freiburg.de> schrieb im Newsbeitrag
> news:01c1746a$5fdf2720$LocalHost@albers...
>

> > Also, dann: 0,5 + 0,1 = 0,6 - und was jetzt?
>
> Runden! Was sonst?!

Na prima, und was ist mit 0,45?
-> 0,45 + 0,1 = 0,55 -> 1 ???

Sollte aber 0 werden.

Wie schon in den anderen Beiträgen beschrieben, solltest Du Int(), Fix()
oder Round() benutzen (oder auch CInt, aber das rundet in dieser Form auf
die nächste gerade Zahl, siehe Doku).

Gruß,

Erik

--
Two roads diverged in a wood, and I -
I took the one less traveled by...
(Robert Frost)

www.erik-reischl.de


Michael Schüller

unread,
Nov 24, 2001, 6:11:53 AM11/24/01
to

"Thorsten Albers" <albe...@SPAMuni-freiburg.de> schrieb im Newsbeitrag
news:01c1746a$5fdf2720$LocalHost@albers...
> > Bzw. natürlich auch 0,495 zu 0,5 zu runden.
> > Wenn Du in VB mathematisch korrekt runden willst musst Du also z.B. beim
> > Runden auf Ganzzahlen zu der zu rundenen Zahl 0,1 addieren, beim Runden
> auf
> > die erste Nachkommastelle 0,01, auf die zweite Nachkommastelle 0,001
usw.
>
> Also, dann: 0,5 + 0,1 = 0,6 - und was jetzt?

Hm, runden dachte ich. Funktioniert in dem konkreten Fall schon, aber bei
0,49 zugegebenermaßen nicht mehr.
Also eigentlich müsste man (1/10) ^(Nachkommastellen der zu rundenden Zahl
+1) hinzuaddieren.
Ich behaupte jetzt mal ganz optimistisch, dass das funktioniert.

Gruß
--
Michael
michael....@gmx.de


Michael Schüller

unread,
Nov 24, 2001, 6:18:29 AM11/24/01
to
"Erik Reischl" <rei...@raven-infotech.de> schrieb im Newsbeitrag
news:O4CvKgNdBHA.376@tkmsftngp04...
> Hallöchen!

Hallöle!

> Na prima, und was ist mit 0,45?
> -> 0,45 + 0,1 = 0,55 -> 1 ???

Jo, habe ich inzwischen auch schon kapiert (s. mein Beitrag von 12.11 Uhr).

> Wie schon in den anderen Beiträgen beschrieben, solltest Du Int(), Fix()
> oder Round() benutzen

Aber Round rundet doch bei 0,5 falsch, (bzw. sagen wir mal es rundet ab,
obwohl einzelne Personen es subjektiv vielleicht lieber sähen, es würde
aufrunden).
Oder reden wir von verschiedenen Funktionen?

Gruß
--
Michael
michael....@gmx.de


Erik Reischl

unread,
Nov 24, 2001, 6:36:33 AM11/24/01
to
Hi Michael,

> Aber Round rundet doch bei 0,5 falsch, (bzw. sagen wir mal es rundet ab,
> obwohl einzelne Personen es subjektiv vielleicht lieber sähen, es würde
> aufrunden).
> Oder reden wir von verschiedenen Funktionen?

Yep, sorry, das war mir offensichtlich entgangen, daß auch die
Round-Funktion kaufmännisch und nicht "schulmäßig" (<-oder wie nennt man
das?) rundet. Aber Jost hat neulich mal was gepostet:

http://vb-tec.de/runden.htm

CU,

Thorsten Albers

unread,
Nov 24, 2001, 6:45:30 AM11/24/01
to
Erik Reischl <rei...@raven-infotech.de> schrieb im Beitrag
<O4CvKgNdBHA.376@tkmsftngp04>...

> "Michael Schüller" <michael....@gmx.de> wrote in message
> news:9tnn29$a0v$05$1...@news.t-online.com...
> >
> > "Thorsten Albers" <albe...@SPAMuni-freiburg.de> schrieb im Newsbeitrag
> > news:01c1746a$5fdf2720$LocalHost@albers...
> >
> > > Also, dann: 0,5 + 0,1 = 0,6 - und was jetzt?
> >
> > Runden! Was sonst?!
^^^^^^^^^^^^^^^^^^^

Hat er das als FollowUp geschrieben? Ist bei mir nicht angekommen...

Michael Schüller

unread,
Nov 24, 2001, 8:49:49 AM11/24/01
to

"Thorsten Albers" <albe...@SPAMuni-freiburg.de> schrieb im Newsbeitrag
news:01c174dc$3042dd00$LocalHost@albers...

> > >
> > > Runden! Was sonst?!
> ^^^^^^^^^^^^^^^^^^^
>
> Hat er das als FollowUp geschrieben? Ist bei mir nicht angekommen...

Jo, habe dann aber gemerkt, dass ich Quatsch erzählt habe, und daher den
Beitrag widerrufen.

Gruß
--
Michael
michael....@gmx.de


Ingo Moch

unread,
Nov 24, 2001, 8:22:40 AM11/24/01
to
Hallo,

"Erik Reischl" <rei...@raven-infotech.de> schrieb:

> Yep, sorry, das war mir offensichtlich entgangen, daß auch
> die Round-Funktion kaufmännisch und nicht "schulmäßig"
> (<-oder wie nennt man das?) rundet.

schulmaessig = mathematisches Runden

BTW: Die Round-Funktion rundet mathematisch.
Kaufmaennisches runden muss selbst implementiert werden
(nicht umgekehrt, wie Du (versehentlich?) geschrieben hast).

Tschau
Ingo

Michael Schüller

unread,
Nov 24, 2001, 9:34:38 AM11/24/01
to

"Ingo Moch" <myjun...@gmx.de> schrieb im Newsbeitrag
news:#oeuwFPdBHA.1452@tkmsftngp04...

>
> BTW: Die Round-Funktion rundet mathematisch.

Nö. Bei mir rundet die 0,5 zu 0. Bei Dir nicht?

Gruß
--
Michael
michael....@gmx.de


Thorsten Albers

unread,
Nov 24, 2001, 9:54:53 AM11/24/01
to
Michael Schüller <michael....@gmx.de> schrieb im Beitrag
<9to8in$pvv$00$1...@news.t-online.com>...

> Jo, habe dann aber gemerkt, dass ich Quatsch erzählt habe, und daher den
> Beitrag widerrufen.

Ah, gnothi seauton, wie der Grieche zu sagen pflegt...

Michael Schüller

unread,
Nov 24, 2001, 11:12:40 AM11/24/01
to

"Thorsten Albers" <albe...@SPAMuni-freiburg.de> schrieb im Newsbeitrag
news:01c174f7$ef975120$a98ee684@albers...

> Ah, gnothi seauton, wie der Grieche zu sagen pflegt...

Genau, oder "Nosce teipsum", wie der Lateiner anmerken würde.
--
Michael
michael....@gmx.de


Armin Zingler

unread,
Nov 24, 2001, 11:22:25 AM11/24/01
to
"Michael Schüller" <michael....@gmx.de> schrieb

> > BTW: Die Round-Funktion rundet mathematisch.
>
> Nö. Bei mir rundet die 0,5 zu 0. Bei Dir nicht?

Eben, deswegen rundet Round mathematisch. Kaufmännisch wäre das
Ergebnis 1

Armin


Ingo Moch

unread,
Nov 24, 2001, 11:37:06 AM11/24/01
to
Hallo Michael,
"Michael Schüller" <michael....@gmx.de> schrieb:
> "Ingo Moch" <myjun...@gmx.de> schrieb:

> > BTW: Die Round-Funktion rundet mathematisch.

> Nö. Bei mir rundet die 0,5 zu 0. Bei Dir nicht?

Eben: www.basicworld.com/vbplus/tt311298.htm

Tschau
Ingo


Michael Schüller

unread,
Nov 24, 2001, 7:05:55 PM11/24/01
to

"Ingo Moch" <myjun...@gmx.de> schrieb im Newsbeitrag
news:uONsWZQdBHA.848@tkmsftngp03...

> > > BTW: Die Round-Funktion rundet mathematisch.
>
> > Nö. Bei mir rundet die 0,5 zu 0. Bei Dir nicht?
>
> Eben: www.basicworld.com/vbplus/tt311298.htm

Hm, ja, na gut. Ich dachte immer, mathematisch wäre 0,5 auf 1 zu runden. Da
habe ich wohl in der Schule nicht richtig aufgepasst...

Gruß
--
Michael
michael....@gmx.de


Martin Raudaschl

unread,
Nov 24, 2001, 4:15:03 AM11/24/01
to
du meinst wohl - *ganze* Zahl?!

> Genauso richtig ist aber auch das kaufmännische Runden, wo
> bei 0,5 immer zur nächsten geraden Zahl gerundet wird. Siehe
> auch: http://www.xbeat.net/vbspeed/i_BankersRounding.htm
>
>
> Viele Grüße
> Jost aus Soest (sprich: Joost aus Soost)
> --
> http://vb-tec.de/ - FAQ, Referenz, Beispiele, Tipps
> http://www.schwider.de/ - Web-Technik & Visual Basic
>
> --
> __________________________________________________________
> News suchen, lesen, schreiben mit http://newsgroups.web.de


Matthias Merz

unread,
Nov 26, 2001, 3:29:12 AM11/26/01
to

On Fri, 23 Nov 2001 17:18:55 +0100, "Dietmar Tumpfer"
<die...@ts-data.it> wrote:

>Hallo,

Auch hallo,

>dumme Frage: Ab welcher Ziffer hinter dem Komma wird nun eigentlich
>gerundet? Hintergrund: In VB wird 0,5 gerundet zu 0, während Crystal Reports
>aus 0,5 eine 1 macht...

Die Round-Funktion ist da ziemlich komisch. Wenn Du auf ganze Zahlen
mathematisch korrekt runden willst, dann addiere 0.5 dazu und schneide
anschliessend die Nachkommastellen ab. Das haben wir früher so gemacht,
als Java noch keine Round-Funktion hatte. Nur beim runden auf die n-te
Nachkommastelle wird das etwas komplizierter.

Beispiel: 5,49 + 0,5 = 5,99 schnippschnapp = 5
5,5 + 0,5 = 6,0 schnippschnapp = 6

CU Matze
--
Email: matthi...@gmx.net

Ingo Moch

unread,
Nov 26, 2001, 5:06:10 AM11/26/01
to
Hallo Matthias,

"Matthias Merz" <matthi...@gmx.net> schrieb:

> Die Round-Funktion ist da ziemlich komisch.

Oh Gott, zumindest die Beitraege in dem betreffenden
Thread solltes Du schon lesen, bevor Du was postest.

Evtl. ist der Link ja verstaendlicher:
www.aboutvb.de/khw/artikel/khwround.htm

> Wenn Du auf ganze Zahlen mathematisch korrekt
> runden willst, dann addiere 0.5 dazu und schneide
> anschliessend die Nachkommastellen ab.

Gerade weil die Round-Funktion mathematisch korrekt
rundet, irritiert das, weil das selbst in den Schulen in
der Sek I nicht (mehr) beigebracht wird.

Das, was Du erreichen moechtest, ist das
*kaufmaennische* runden.

Ingo

0 new messages