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