AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi FloattoStr führt zu Ungültige Gleitkommaoperation
Thema durchsuchen
Ansicht
Themen-Optionen

FloattoStr führt zu Ungültige Gleitkommaoperation

Ein Thema von v2afrank · begonnen am 19. Mär 2008 · letzter Beitrag vom 25. Mär 2008
Antwort Antwort
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#1

FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 19. Mär 2008, 13:24
Hallo, ich habe hie ein Programm, was bei einem Kunden mit der Fehlermeldung "Ungültige Gleitkommaoperation" absürzt.
Ich konnte den Fehler jetzt in folgender Zeile festmachen:
 AbzuspeicherndeZeile:=FloatToStrF(Uist, ffFixed, 18, 2); Uist ist hier als Extended deklariert. Wann kann es zu so einer Fehlermeldung kommen ? Ich habe aber momentan keine Idee, was UIst für einen Wert hat.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 19. Mär 2008, 13:35
Zeig mal ein bisschen mehr Code, ich kann da nämlich keinen Fehler entdecken. Und guck mal nach, was Uist für einen Wert hat.

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 19. Mär 2008, 13:38
Setz nen Breakpoint, drück Strg+F7 und gib Uist ein.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#4

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 19. Mär 2008, 13:39
Moin, Moin,

was ist denn das für eine seltsame "AbzuspeicherndeZeile" die mit einem Gleitkommawert indiziert wird? Haben Zeilen nicht immer einen ganzzahligen Index?

// edit : und noch dazu als String???
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 19. Mär 2008, 13:48
Vielleicht er ja den Extended als String abspeichern?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#6

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 19. Mär 2008, 14:04
Ja, AbzuspeicherndeZeile ist ein String, den ich abspeichern möchte, der eben diese Extendedwert beinhaltet. Einen Breakpoint kann ich leider nicht setzen, da dieser Fehler beim Kunde auftritt. Leider auch nur selten.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 19. Mär 2008, 16:27
Ich will ja ungern diese Raterunde hier unterbrechen, aber zeig doch mal ein bisschen mehr Code, vielleicht könnten wir den fehler dann eventuell unter Umständen möglicherweise finden
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#8

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 20. Mär 2008, 05:53
Da ist ja das Problem. Hier ist der komplette Codeausschnitt wo der Fehler auftritt
Delphi-Quellcode:
 
         for j := Cnt to Programm.Steps.Item[i].IstValues.Count-1 do
          begin
            Zeile := FloatToStrF(Programm.Steps.Item[i].IstValues.Item[j].Uist, ffFixed, 18, 2) +
                     #9 + FloatToStrF(Programm.Steps.Item[i].IstValues.Item[j].Iist, ffFixed, 18, 2) +
                     #9 + FloatToStrF(Programm.Steps.Item[i].IstValues.Item[j].Qist, ffFixed, 18, 2) +
                     #9 + FloatToStrF(Programm.Steps.Item[i].IstValues.Item[j].TempRegel, ffFixed, 18, 2) +
                     #9 + FloatToStrF(Programm.Steps.Item[i].IstValues.Item[j].Temp1, ffFixed, 18, 2) +
                     #9 + FloatToStrF(Programm.Steps.Item[i].IstValues.Item[j].Temp2, ffFixed, 18, 2) +
                     #9 + FloatToStrF(Programm.Steps.Item[i].IstValues.Item[j].StepTime, ffFixed, 18, 2);
            Ini.WriteString(('Istwerte Schritt ' + IntToStr(i)), ('Wert ' + IntToStr(j)), Zeile);
          end;
Die ganzen Programm.Steps.Item[i].IstValues.Item[j].Uist, Iist... sind alle als Extended deklariert. Mehr passiert hier nicht, und trotzdem hat mir Madexcept in der Zeile den Fehler FloatToStrF(... "Ungültige Gleitkommaoperation" angegeben.
Kann es was mit FPU-Exceptions zu tun haben ?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 20. Mär 2008, 09:17
Einer der Werte hat wahrscheinlich einen zu großen Exponenten, wodurch es bei der Gleitkommaoperation zu einen Stack-Überlauf kommt. Das kann dadurch sein, dass einer der Messwerte gegen Null geht (aber nicht Null und auch nicht -∞ ist). Vorschlag: Schreib Dir eine eigene FloatToStrDef Funktion, die die Exceptions behandelt und den Rückgabewert auf den Standard setzt.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#10

Re: FloattoStr führt zu Ungültige Gleitkommaoperation

  Alt 25. Mär 2008, 06:04
Werde ich machen. Danke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 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