Hallo liebe vba-Experten,
ich habe folgenden Code als Makro eingegeben:
Sub test()
'
' test Makro
'
Dim a As Integer
Dim i As Double
a = 1
For i = -1 To 3 Step 0.001
Cells(a, 1).Value = i
a = a + 1
Next i
'
End Sub
Bei der Ausführung wird irgendwann der Schritt (hier 0.001) verändert und es wird an die eigentlichen i-Werte eine ganze Reihe von Kommastellen angehangen, also bei mir zB in Schritt 563 zu 564 (im Excel-Tabellenblatt):
Schritt |
i-Wert |
Bemerkungen |
559 |
-0,442000000000000000000000000000 |
|
560 |
-0,441000000000000000000000000000 |
|
561 |
-0,440000000000000000000000000000 |
... |
562 |
-0,439000000000000000000000000000 |
exakt +0,001 |
563 |
-0,438000000000000000000000000000 |
exakt +0,001 |
564 |
-0,436999999999999000000000000000 |
nicht exakt +0,001 |
565 |
-0,435999999999999000000000000000 |
|
566 |
-0,434999999999999000000000000000 |
|
567 |
-0,433999999999999000000000000000 |
|
Beim Debuggen ist der i-Wert nicht nur im Excel-Tabellenblatt, sondern auch schon als Wert im vba-Code falsch.
Meine Fragen:
-
Warum ist das so?
-
Und was muss ich tun, um einerseits möglichst kleine Schritte für i festlegen zu können (mindestens 4 Nachkommastellen) und andererseits auch die Schritte exakt konstant zu halten?
Ich bin gespannt auf eine Lösung und sage schonmal vielen Dank im Voraus!
|