Hi, ich will Zahlen addieren. Dazu habe ich ein Programm, dass Zahlen
addiert geschrieben und was immer zyklisch läuft:
Beispiel:
1 | Addierzahl = 0,0005
|
2 | Zahl = 0
|
3 |
|
4 | Schleifenstart:
|
5 | Zahl = Zahl + Addierzahl
|
6 | Print Zahl
|
7 | Schleifenende
|
Jetzt ist folgendes Problem - zunächst sieht "Zahl" noch gut aus, also
immer
0,0005
0,0010
0,0015
0,0020
...
irgendwann passiert etwas Komisches, was ich nicht verstehe - die letzte
Ziffer müsste immder 0 oder 5 sein. Aber dann ist sie plötzlich anders,
wie z.B.
1,2248
1,2253
1,2258
...
Der Abstand ist dann immer noch Addierzahl, aber irgendwann hat sich das
dann verrechnet an einer Stelle und rechnet dann falsch weiter.
Was könnte das sein? Ich bin mir nicht so sicher, aber hat es vielleicht
irgendwas mit Gleitkommazahlenaddition zu tun? Ich habe mir z.B. den
Wert 0,0005 auch mal in Matlab angeguckt. Es ist genaugenommen nur ein
gerundeter Wert. Statt 5e-4 steht dann da z.B. 5,000000237487257e-4,
obwohl ich halt in die Konstante zum Addieren 0,0005 rein schrieb.