Registriert seit: 11. Okt 2004
Ort: Aachen
9 Beiträge
Delphi 2006 Professional
|
Re: 0 + 0.1 = ? Probleme mit dem Datentyp Single?
12. Okt 2004, 00:14
Hallo,
So sehr das schockieren mag, single ist nicht genauer!
Mit Extended ist der Fehler deutlich kleiner, aber trotzdem vorhanden. Das ist auch der Grund, warum Ausdrücke wie
if (mySingle = 0.0) then ...
riskant sind.
Man sollte statt dessen immer
if (mySingle - 0.0 < single_epsilon) then ...
schreiben und single_epsilon als Konstante als den kleinsten tolerierbaren Fehler definieren.
Zurück zum Problem: Ganzzahlarithmetik, falls möglich; oder Extended, falls der (geringe!) Fehler einer Single-Variablen zu groß ist.
Schwabix
Markus
|