Round(0,5) = 0

Hallo,
ich hab grad mit Verwunderung festgestellt, dass in VBA Round(0,5)= 0 ausspuckt, wohingegen Round(1,5)= 2 ergibt.
Kann mir das jemand erklären?

Regina

Hallo Regina,

ich hab grad mit Verwunderung festgestellt, dass in VBA
Round(0,5)= 0 ausspuckt, wohingegen Round(1,5)= 2 ergibt.
Kann mir das jemand erklären?

Access kann NICHT kaufmännisch runden!!!

Ein altes Thema zu dem es schon 1000 Antworten gibt:
http://www.google.de/search?source=ig&hl=de&q=access…

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,

Danke, für’s Antworten. Hab über den Link was hübsches gefunden:

Public Function FndRunden(Optional vZahl As Variant, _
Optional iStellen As Integer = 2) As Double
If IsMissing(vZahl) Or Not IsNumeric(vZahl) Or IsNull(vZahl) Then
FndRunden# = 0
Exit Function
End If
FndRunden# = Fix("" & vZahl * 10 ^ iStellen + Sgn(vZahl) * 0.5) _
/ 10 ^ iStellen
'"" & ist kein Fehler, sondern der Haupttrick zwecks Genauigkeit
'Frei nach Karl Donaubauer (www.donkarl.com) FAQ 2.1 RUNDEN
End Function

Public Function FndAufRunden(Optional vZahl As Variant) As Double
If IsMissing(vZahl) Or Not IsNumeric(vZahl) Or IsNull(vZahl) Then
FndAufRunden# = 0
Exit Function
End If
FndAufRunden# = Abs(Int(-1 * Abs(vZahl))) * Sgn(vZahl)
End Function

Public Function FndAbRunden(Optional vZahl As Variant) As Double
If IsMissing(vZahl) Or Not IsNumeric(vZahl) Or IsNull(vZahl) Then
FndAbRunden# = 0
Exit Function
End If
FndAbRunden# = Int(Abs(vZahl)) * Sgn(vZahl)
End Function

Gruß
Regina