Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Gleitkommazahl (https://www.delphipraxis.net/54730-gleitkommazahl.html)

Murdock 10. Okt 2005 16:59


Gleitkommazahl
 
Hallo erst einmal.

Ich bin auch wie viele andere hier neu und Anfänger auf dem Gebiet der Delphi Programmierung.
Ich hoffe, dass mir einer von euch bei meinem kleinen Problem helfen kann.
Und zwar bekomme ich bei der suche nach einem Max-Wert in einer StringGrid immer die Fehlermeldung
"ist kein gültiger Gleitkommawert".
Auch das lesen hier im Forum bringt mich erlich gesagt nicht viel weiter vielleicht weiß einer von euch noch einen Rat den ich probieren könnte. hier einmal meine Procedure.

Delphi-Quellcode:
procedure TForm2.Fmax;      // maximal auftretende Kraft
var i: integer;
    x,max: real;
    Fmax : string;

begin
 DecimalSeparator := ',';
with StringGrid1 do
 for i:= 1 to 360 do
 begin
        FMax:= StringGrid1.Cells[3,i];
        x:= StrToFloat(FMax);
     //if x > max then max := x;
     end
 end;
hierbei sei gesagt, dass der Wert Fmax zwischen -0,04 bis 7000,00 alles annehmen kann.

ich hoffe einer von euch kann mir ein wenig weiter helfen.

Gruß und Danke
Murdock

Kedariodakon 10. Okt 2005 17:05

Re: Gleitkommazahl
 
Delphi-Quellcode:
// ...
  x := StrToFloat( FMax );
// ...
Hier läuft was Falsch!
kann das sein, dass n einem der Felder kein Wert steht?
Wenn das der fall ist, kann der ja ß sein, also teste mal:
Delphi-Quellcode:
// ...
  x := StrToFloatDef( FMax, 0 );
// ...
Auch kann es an dem DecimalSeparator liegen, vielleicht ist es ja kein "," sondern ein "." ???

Bye

Sharky 10. Okt 2005 17:17

Re: Gleitkommazahl
 
Hai Murdock,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS" :hi:

Wie Kedariodakon schon geschrieben hat wird der Fehler wohl bei der Umwadlung von dem String aus dem TStringGrid in die Variabel X kommen.

Du hast jetzt zwei Möglichkeiten:
  1. Du testest vor/bei der Konvertierung ob in der Zelle des StringGrid ein gültiger Flieskommawert steht
  2. Du verhinderst das in der Zelle ungültige Werte stehen

In jedem Fall würde ich an deiner Stelle vermeiden den Delphi-Referenz durchsuchenDezimalseperator im Programm zu ändern.
Nicht der Benutzer muss sich an dein Programm anpassen sondern dein Programm an den Benutzer ;-)

Murdock 10. Okt 2005 17:28

Re: Gleitkommazahl
 
Hallo ihr alle beide :-D

Ich danke euch für eure schnellen Antworten und es beweist sich schon wieder einmal, dass wenn man sich austauscht das Problem nur noch halb so groß ist. Ich habe den Fehler jetzt gefunden.

Und zwar lag es wirklich daran, dass es kein gültiger Wert war. Ich hatte beim einschreiben der Werte in die Tabelle eine Einheit in Form von 'N' gehängt und dies nicht weiter bedacht. Und somit war es auch kein gültiger Wert mehr.

Ich danke euch nochmal für die schnelle Antwort und komme gerne wieder.

Gruß Murdock


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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