Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
448to452
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
448to452
448to452
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige