Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Round-Funktion runden fehlerhaft

Forumthread: Round-Funktion runden fehlerhaft

Round-Funktion runden fehlerhaft
05.07.2004 09:06:49
Martin
Hallo liebe Excel-Profis,
ich habe eine Round-Funktion, die fehlerhaft rundet. Es wird eine Zeilenanzahl ausgelesen und diese halbiert. Es kommen also entweder ganze Zahlen oder ,5-Zahlen raus.
Ich will eine Variable deklarieren, die die Maximalzeilenzahl halbiert.
Bsp.: 205 / 2 = 102,5
Diese Zahl soll dann gerundet werden. Bei manchen ,5-Zahlen wird auf-, bei manchen aber abgerundet. Woran kann das liegen?
Gibt es eine Möglichkeit zu sagen, dass Excel IMMER aufrundet?
Zur Zeit nutze ich folgenden Code:
DPLLeerZahlHälfte = (DPLLeerZahlGesamt - 4) !!!(209-4=205)
MsgBox DPLLeerZahlHälfte
DPLLeerZahlHälfte = DPLLeerZahlHälfte / 2 !!!(205/2=102,5
MsgBox DPLLeerZahlHälfte
DPLLeerZahlHälfte = Round(DPLLeerZahlHälfte, 0) !!!(nach Runden = 102!!!)
MsgBox DPLLeerZahlHälfte
Vielleicht habt Ihr einen Rat für mich.
Vielen Dank.
Gruß,
Martin
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Round-Funktion runden fehlerhaft
Ramses
Hallo
es gibt noch die Funktion "RoundUp"

Sub test()
Dim i As Variant
i = 122.5
Debug.Print WorksheetFunction.RoundUp(i, 0)
End Sub

Gruss Rainer
AW: Round-Funktion runden fehlerhaft
05.07.2004 10:20:44
Martin
Hallo Rainer,
hab vielen Dank für Deine Hilfe.
Hab es in meine Datei einbauen können und es funzt.
Gruss,
Martin
Anzeige
AW: Round-Funktion runden fehlerhaft
Harald
Hallo Martin,
wie sind die Variablen definiert? Als Integer, Double, Variant?
Guck mal im Debugger nach, welchen Wert LeerZahlHälfte tatsächlich hat. Es könnte sein, dass auf Grund der internen Zahldarstellung (binär) der Wert 102,5 gar nicht exakt dargestellt werden kann, sondern nur 102,49999999... beträgt. Das würde sogar korrekt auf 102 abgerundet.
Abhilfe:

Sub test()
Dim DPLLeerZahlGesamt As Double
Dim DPLLeerZahlHälfte As Double
DPLLeerZahlGesamt = 209
DPLLeerZahlHälfte = (DPLLeerZahlGesamt - 4)
DPLLeerZahlHälfte = DPLLeerZahlHälfte / 2
If (DPLLeerZahlHälfte - Int(DPLLeerZahlHälfte)) <> 0 Then
DPLLeerZahlHälfte = DPLLeerZahlHälfte + 0.5
End If
MsgBox DPLLeerZahlHälfte
DPLLeerZahlHälfte = Round(DPLLeerZahlHälfte, 0)
MsgBox DPLLeerZahlHälfte
End Sub

Gruß Harald
Anzeige
AW: Round-Funktion runden fehlerhaft
05.07.2004 10:22:29
Martin
Moin Harald,
mit deiner "IF"-Funktion funktioniert jetzt tadellos.
Ich denke ich werde es so einbauen, so muss ich keine extra Variablen vergeben.
Hab vielen Dank.
Gruss,
Martin
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige