Zitat:
Im vorliegenden Fall wird die Zahl wohl irgendwie als 1.999999999999 oder so gespeichert
nicht nur irgendwie, nein sie WIRD so gespeichert
möchte nur noch etwas hinzufügen,
.. dass dieser Fall sogar schon bei ganz einfachen operationen eintreten kann.
Jeder kann mal folgendes Beispiel probieren.
Bei mir kommt da schon die Meldung, dass die Zahlen ungleich wären. Was natürlich nach Adam Ries nicht stimmt.
Beachten sollte man, dass dies sogar vom Prozessor abhängig ist.
Wir haben das mal getestet, es gibt Computer, die rechnen dieses Beispiel "richtig" und andere wiederum "falsch"
ist von Computer zu Computer anders. (Co-Prozessor).
Was denkst Du, warum Brücken einstürzen ? *g* .. Tja, die Computer sind schon grausam, was die so alles mit uns machen ...
Code:
procedure TForm1.Button1Click(Sender: TObject);
var a, b : double;
begin
a := 100;
b := 0.01;
a := a - b;
a := a - b;
if a = 99.98 then showmessage('Gleich') else showmessage('ungleich');
end;