Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Rechenfehler in Delphi - wie beheben? (https://www.delphipraxis.net/24788-rechenfehler-delphi-wie-beheben.html)

Quake 26. Jun 2004 09:58


Rechenfehler in Delphi - wie beheben?
 
Moin moin,

ich habe gerade eine Procedure geschrieben die nicht richtig funktioniert.

tBit = 1e-05
tq = 5e-07

Code:
Quantums:=tBit/tq;        // da kommt genau 20 raus, mit nix dach dem Komma
if frac(Quantums)=0 then
  // wenn nach dem Komma 0 ist dann das hier ausführen
else
  // wenn nach dem Komma nicht 0 ist dann das hier ausführen
  Fehler:=frac(Quantums);
Wenn ich nun diese Procedure Schritt für Schitt ausführe wird mir für Quantums der 20 angezeigt (ohne Kommastellen) aber die Bedinnung frac(Quantums)=0 ist nicht erfüllt. Deswegen wird 'Fehler' der Wert 3,55..e-15 zugewiesen.

Was tun ??? :gruebel:

ciao

P.S. Alle Werte sind als Double deklariert.

Sharky 26. Jun 2004 10:01

Re: Rechenfehler in Delphi - wie beheben?
 
Hai Quake,

schaue Dir mal die Funktion IsZero an. Die könnte dir sicher helfen.

Quake 26. Jun 2004 10:18

Re: Rechenfehler in Delphi - wie beheben?
 
Wow super schnelle Antwort, Danke :bounce2:

die meinst also in der Art :
Code:
if IsZero(Quantums-int(Qantums),1e-12) then
 .
 .
 .

Quake 26. Jun 2004 10:26

Re: Rechenfehler in Delphi - wie beheben?
 
Danke, ja funktioniert. :bounce2:

P.S. Nur für alle die es auch interessiert SameValue sollte auch funktionieren


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr.

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