Einzelnen Beitrag anzeigen

TM.

Registriert seit: 22. Jul 2006
42 Beiträge
 
#1

Rundungsprobleme mit Extended

  Alt 12. Sep 2010, 15:51
Delphi-Version: 7
Hallo,

ich habe bei meinem Programm eine Menge an Rundungsfehlern; manche kann ich nicht nachvollziehen, möglicherweise hängt das mit Bits und ihrer Funktionsweise zusammen..

Erstens verwende ich FloatToStrF() mit ffFixed, da ich ansonsten eine nicht erwünschte Schreibweise wie "5E-09" bekomme - allerdings kann es sein, dass eine Zahl wie 3,24 nun in 3,23999999.. umgewandelt wird. Mit FloatToStr habe ich dieses Problem nicht, allerdings kann ich das ja nicht verwenden.

Zweitens habe ich einen unerwünschten Rechenfehler, der noch unverständlicher für mich ist. Dabei errechne ich drei verschiedene Werte, die in diesem Fall alle derselbe sind. Mit diesen rechne ich dann:
Delphi-Quellcode:
SSteigung1 := (Steigung2 - Steigung1) / 0.00001;
SSteigung2 := (Steigung3 - Steigung2) / 0.00001;
Nun nimmt SSteigung2 wie erwünscht den Wert '0' an, SSteigung1 dagegen etwas wie '-5,42101..e-10'. Wie kann das sein, da ich ja denselben Rechenschritt ausführe, und wie kann ich es beheben? Ich benutze durchgehend den Typ Extended.

Danke,
TM.
  Mit Zitat antworten Zitat