Thema: Rechenfehler

Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.050 Beiträge
 
Delphi XE2 Professional
 
#11

Re: Rechenfehler

  Alt 5. Mär 2010, 22:46
Zitat von Luckie:
Es kommt natürlich noch auf die Genauigkeit der Datentypen an. Eventuell sind sie bei C++ und dem Casio Rechner höher.
Ich denke eher, dort wird mit niedrigerer Genauigkeit gearbeitet.
Wenn man im Beispiel-Code a als Double deklariert, tritt der Fehler nicht auf.
Und warum nicht ?:
Schauen wir uns doch mal an was beim 13. Durchlauf passiert:
1) 1.55 wird in die FPU geladen. (da 1.55 binär nicht exakt darstellbar ist, ein Wert knapp unter 1.55)
2) Es wird mit a multipliziert.
3) Das Ergebnis, ist der gleiche Wert, als wäre a ein Extended-Wert, also knapp unter 1043026
4) Jetzt wird dieses Ergebnis wieder in a gespeichert. Wäre a ein extended-Wert, würde simpel der Inhalt des FPU-Registers gespeichert. Da a aber "nur" ein Double ist, muß gerundet werden, was in diesem Fall die Ungenauigkeit beseitigt.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat