Servus Roland,
für VBA kenne ich nur einen Workaround
Code:
Private Function RoundUp(a As Double, digits As Long) As Double Dim tmp As Double
tmp = 0.5 * 10 ^ (-1 * digits) ' "eine halbe Stelle"
' z.B. wenn auf 0.1 gerundet wird, dann kommt hier zunächst 0.05 raus
'diesen Zahlenwert zur eigentlichen Zahl addieren
'dann sollte im Ergebnis immer aufgerundet werden
tmp = Round(a + tmp, digits)
RoundUp = tmp 'Rückgabewert der Function
End Function
Ich bin nicht ganz sicher, wie VBA genau rundet. Dürfte aber "toEven" sein, dh. 5 wird manchmal auf- und manchmal abgerundet auf die nächste gerade Zahl. Ganzzahliges Beispiel: 1,5 wird zu 2 und 2,5 ebenfalls.
Hier gibts etwas mehr Details:
http://hjalte.nl/105-unexpected-results-1-5
Wenn Du auf iLogic ausweichen kannst, gäbe es explicite Funktionen. Dazu steht auch was unter dem Link zu lesen.
------------------
Gruß KraBBy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP