Hallo zusammen,
ich melde mich zum ersten Mal selbst in diesem (und überhaupt in irgendeinem) Forum, nachdem ich hier jahrelang sehr viel lernen konnte. Mittlerweile würde ich mich als recht erfahrenen VBA-Autodidakten bezeichnen.
Nun habe ich aber ein Problem, auf dessen Lösung ich leider nicht selbst komme - und von dem ich befürchte, dass die Lösung sehr trivial sein könnte...
Ich bastle gerade an einem bestimmten Algorithmus, in dem ich mit einigen Arrays arbeite. Dabei fiel mir auf, dass die Summe eines Arrays nicht korrekt gebildet wird. Ich konnte den Fehler dann in einem neuen Projekt sehr einfach nachbilden:
Option Explicit
Sub IchVerstehDieWeltNichtMehr()
Dim i As Integer
Dim ArrTest(9) As Double
For i = 0 To UBound(ArrTest())
ArrTest(i) = 0.1
Next i
If Application.WorksheetFunction.Sum(ArrTest()) < 1 Then _
MsgBox "10 x 0,1 ist weniger als 1"
If Application.WorksheetFunction.Sum(Array(0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1)) < 1 Then _
MsgBox "10 x 0,1 ist immer noch weniger als 1"
If Application.WorksheetFunction.Sum(Array(0.4, 0.4, 0.2)) = 1 Then _
MsgBox "0,4 + 0,4 + 0,2 ist aber gleich 1"
End Sub
Die Funktion .Sum liefert bei der Summe 0,4+0,4+0,2 korrekt den Wert 1, während sie bei dem Zehnfachen von 0,1 weniger als 1 zu liefern scheint.
Kann mir das vielleicht jemand erklären?
Vielen Dank schon mal im Voraus,
Buschi
|