Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1040to1044
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

runden mit vba ... fehlerhaft?

runden mit vba ... fehlerhaft?
23.01.2009 00:19:12
Samuel
Hallo allerseits,
die Round Funktion von VBA bereitet mir reichlich Kopfzerbrechen:
wieso ergibt
Round(0.5 , 0) als Ergebnis 0 und
Round(1.5 , 0) als Ergebnis 2 ?
Kann das jemand nachvollziehen?
warum wird mal aufgerundet, mal abgerundet?
Es ist Excel 2003 SP3 ...
Hier als simple Prozedur:

Sub test()
MsgBox Round(0.5, 0)
MsgBox Round(1.5, 0)
End Sub


Viele Grüße
Samuel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: runden mit vba ... fehlerhaft?
23.01.2009 00:31:00
Josef
Hallo Samuel,
das kommt, weil die VBA-Funktion Round() immer auf die nächste gerade Ganzzahl rundet. (round-to-even)
Verwende stattdessen

Application.Round(1.5, 0)


Gruß Sepp

AW: runden mit vba ... fehlerhaft?
23.01.2009 00:52:24
Samuel
Hallo Sepp,
danke für die Antwort.
"Round-to-even" beschreibt die Funktionsweise sehr gut.
Und mithilfe von Wikipedia ("Unverzerrte Rundung") habe ich das jetzt sogar fast verstanden :-)
Die VBA-Hilfe sagt leider nichts von "Round to even", sondern nur ...
"... Gibt eine Zahl zurück, die auf eine festgelegte Anzahl an Dezimalpunkten gerundet wurde. ..."
das ist da leider ein bissl zu wenig ...
Viele Grüße
Samuel
Anzeige
AW: runden mit vba ... fehlerhaft?
23.01.2009 00:41:44
Daniel
Hi
ganz einfach, wenn man bei 0.5 beginnt aufzurunden, entsteht ein statistischer Fehler, da bei mehr Werten aufgerundet als abgerundet wird.
abrunden : 4x: 0,1 0,2 0,3 0,4
aufrunden: 5x: 0,5 0,6 0,7 0,8 0,9
Folge ist, daß die Summe der gerundeten Werte immer grösser ist, als die Summe der ungerundeten.
um diesen Fehler zu reduzieren gibt es verschiedene Ansätze, einer davon ist, bei ,5 und gerader Ganzzahl ab- und bei ungerader Ganzzahl aufzurunden, um hier eine grössere Gleichmäßigkeit zu erzielen.
ich vermute mal, das Excel diese Methode bei der ROUND-Funktion umgesetzt hat.
Gruß, Daniel
Anzeige
AW: runden mit vba ... fehlerhaft?
23.01.2009 00:58:01
Samuel
Hallo Daniel,
danke für die Antwort,
mittlerweile habe ich das dahinterliegende Prinzip verstanden,
und offenbar setzt VBA das auch so um - wie Du sagst - nur leider ist die VBA Hilfe ein wenig irreführend.
Gruß
Samuel
AW: runden mit vba ... fehlerhaft?
23.01.2009 07:47:00
Gerd
Hallo Samuel,
das ist ein Bug von VBA-Round. Dieser tritt -wie von Sepp vorgeschlagen- mit dem Zeiger
auf die Anwendung nicht auf; ganz einfach. :-)
Gruß Gerd
AW: @ Sepp
23.01.2009 21:05:50
Gerd
Guten Abend Sepp,
besser wäre gewesen, diese Round-Funktion entweder danach zu benennen, was sie
wirklich macht u. das auch in der Hilfe zu beschreiben oder sie so zu programmieren wie "Application.Round".
Von einer Rundungsfunktion erwarte ich zutreffende Ergebnisse.
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige