Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Rechnen (https://www.delphipraxis.net/49665-rechnen.html)

cell 14. Jul 2005 10:06


Rechnen
 
ich hätte noch eine frage zum addieren mit delphi
ich weiß der folgende quelltext ist "brutal" aber ich kanns nicht besser = D
ich will nur wissen, warum er mir das nicht zusammenrechnet zu einer float zahl

thx

Delphi-Quellcode:
procedure Tfrmmdichild.FormShow(Sender: TObject);
var
a: string;
b: string;
c: string;
d: string;
e: string;
f: string;
g: string;
h: string;
begin
     with DataModule1 do
     begin
       Query.SQL.Text:= selectsql('Anfangsgewicht_Belag_vorne_oben, Anfangsgewicht_Belag_vorne_unten, Anfangsgewicht_Belag_hinten_oben, Anfangsgewicht_Belag_hinten_unten, Endgewicht_Belag_vorne_oben, Endgewicht_Belag_vorne_unten, Endgewicht_Belag_hinten_oben, Endgewicht_Belag_hinten_unten','Friktionstest','Testnummer=' + frmtestauswahl.cbotestnummer.Text,'', '');
       Query.Open;
       while not Query.Eof do
       begin
            a :=(Query.Fields[0].AsString);
            b :=(Query.Fields[1].AsString);
            c :=(Query.Fields[2].AsString);
            d :=(Query.Fields[3].AsString);
            e :=(Query.Fields[4].AsString);
            f :=(Query.Fields[5].AsString);
            g :=(Query.Fields[6].AsString);
            h :=(Query.Fields[7].AsString);
            lblbelagverschleiss.Caption :=FloatToStr(StrToFloat(a+b+c+d)-StrToFloat(e+f+g+h));
            Query.Next;
       end;
       Query.Close;
     end;
end;

Touchdown 14. Jul 2005 10:26

Re: Rechnen
 
Mit Strings kann man nicht rechnen, wandel die Werte in Integer oder Floats um, mit diesen Werten kann man dann auch ganz normal rechnen.

Zu deinem Quellcode: So sind wir wohl alle angefangen, schau dir mal Array's und for Schleifen an, da kann man einiges kürzen :)

shmia 14. Jul 2005 10:27

Re: Rechnen
 
Zitat:

Zitat von cell
ich weiß der folgende quelltext ist "brutal"

Aber definitiv! Man muss lange suchen, um so etwas zu sehen. :-)

1.) Variablen a bis h sollten vom Typ Double sein
2.) so wird ausgelesen:
Delphi-Quellcode:
  a :=Query.Fields[0].AsFloat; // nicht AsString
3.) gerechnet wird mit Double Variablen und erst am Ende in String wandeln
Delphi-Quellcode:
// Summe Anfangsgew. minus Summe endgew.
lblbelagverschleiss.Caption :=FloatToStr(a+b+c+d-(e+f+g+h));


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