![]() |
Gleitkommaüberlauf
Hallo zusammen!
Da ich in der Suche und mit google nicht weitergekommen bin, frage ich mal hier...vielleicht könnt ihr mir ja helfen. Ich habe folgendes Problem bei meinem Programm: Ich bekomme an einer Stelle im Programm immer die Fehlermeldung 'Gleitkommaüberlauf'. Dieser Fehler tritt auf, seit ich an einer anderen Stelle etwas verändert habe. Ich poste mal den entsprechenden Teil des Quelltextes:
Delphi-Quellcode:
Das Fehlermeldung kommt, seit ich die mit (*) gekennzeichneten Zeilen hinzugefügt und die mit (**) gekennteichnete geändert habe.
procedure zaehleschritte (crf,cif:real);
begin zaehler:=0; zrp := 1; zip := 1; vergleich := 0; abweichung := 0; while zrp < 600 do begin while zip < 600 do begin if form1.button2.caption = 'Starte' then begin zrf := zrp/(form1.image1.width/diffxf)+x2f; zif := zip/(form1.image1.height/diffyf)+y2f; end else begin zrf := zrp/(form1.image1.width/h3)+h2; zif := (zip/(form1.image1.height/h4)+h1)*-1; end; repeat inc(zaehler); ergreal := sqr(zrf) - sqr(zif) + crf; // an dieser Stelle tritt beim neunten Durchlauf die Fehlermeldung auf ergimag := (cif + 2*zrf*zif); zrf := ergreal; zif := ergimag; betragerg := sqrt(sqr(ergreal) + sqr(ergimag)); abweichung := vergleich - betragerg; (*) if abweichung < 0 then abweichung := -abweichung; (*) vergleich := betragerg; (*) until (abweichung <= 0.0001) or (zaehler = maxzaehler); (**) zeichne(zaehler,zrp,zip); zaehler:=0; zip := zip + 1; end; zrp := zrp + 1; zip := 1; end; ende := now; zeit := ende-start; form1.edit4.text:=timetostr(zeit); end; Ich habe vorher alle Variablen in Formcreate initialisiert (auf null gesetzt). MfG, watzi |
Re: Gleitkommaüberlauf
Nimm mal Extended statt Real
|
Re: Gleitkommaüberlauf
da kommt immer noch die selbe Fehlermeldung...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz