Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Rechenfehler (https://www.delphipraxis.net/148651-rechenfehler.html)

Amateurprofi 5. Mär 2010 22:46

Re: Rechenfehler
 
Zitat:

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.

Wolfgang Mix 5. Mär 2010 22:49

Re: Rechenfehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schaue mal auch in den Anhang als anderes Beispiel

Sebtis 5. Mär 2010 22:51

Re: Rechenfehler
 
omg, amateurprofi, hast recht. als double gibts kein problem... THX!!!

Amateurprofi 5. Mär 2010 23:06

Re: Rechenfehler
 
Zitat:

Zitat von Sebtis
@Amateurprofi:
Das klingt gut. Und was macht C++ da jetz anders? ^^

Weiß ich auch nicht.
Der c++ long double ist ein 80 Bit-Wert, was mich vermuten läßt, daß er identisch ist, mit dem extended, der ja exakt das FPU-Register abbildet, also sollte beim 13. Durchlauf auch das gleiche Ergebnis kommen. Ich hab kein c++, sonst würde ich mir mal mit dem Debugger anschauen, was da genau gemacht wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz