Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   String minus Float rechnen! (https://www.delphipraxis.net/70596-string-minus-float-rechnen.html)

roth 1. Jun 2006 13:11


String minus Float rechnen!
 
Guten Tag!
Ich habe folgende frage/problem
ich möchte diese arrays voneinander abziehen:
Delphi-Quellcode:
total_gezahlt[i] := query1.FieldByName('TOTAL_PAID').AsFloat;
skonto[i] := query1.FieldByName('SKONTO').AsString;
habe schon mit
Delphi-Quellcode:
rechtotal[i]- strtoint(skonto[i])
oder
Delphi-Quellcode:
rechtotal[i]- strtofloat(skonto[i])
funktioniert beides nicht!

mfg roth

Kroko1999 1. Jun 2006 13:15

Re: String minus Float rechnen!
 
Was steht denn es Skonto[I] (als Text) ?

roth 1. Jun 2006 13:19

Re: String minus Float rechnen!
 
was es Skonto?
nein es ist eine Zahl jedoch schon i der db so deklariert!

mkinzler 1. Jun 2006 13:21

Re: String minus Float rechnen!
 
Was ist als Dezimaltrenner eingestellt?

roth 1. Jun 2006 13:37

Re: String minus Float rechnen!
 
wie was ist als dezimal trenner eingestellt? das format ist bis auf zwei kommastellen

pacman1986 1. Jun 2006 13:47

Re: String minus Float rechnen!
 
poste mal deine komplette schleife.

mkinzler 1. Jun 2006 13:49

Re: String minus Float rechnen!
 
Dezmaltrenner: . oder , vom System und dem array müssen übereinstimmen sonst kann man kurzeitig durch Setzten von DecimalSeparator ändern oder den im String durch StringReplace anpassen.

roth 1. Jun 2006 13:53

Re: String minus Float rechnen!
 
Delphi-Quellcode:
if(rechtotal[i]- skonto[i] > total_gezahlt[i])AND(total_gezahlt[i] <> 0)then
 begin
   //Kunde hat zuwenig gezahlt
   zuwenig.Add(IntToStr(i));
 end else if (rechtotal[i] - skonto[i] < total_gezahlt[i]) then
  begin
  //Kunde hat zuviel gezahlt
  zuviel.Add(IntToStr(i));
 end;//if

ManuMF 1. Jun 2006 15:55

Re: String minus Float rechnen!
 
Hallo,

und was funktioniert nicht? Compiler meckert? Fehlermeldung im Programm? Gar nichts?

Gruß,
ManuMF

roth 1. Jun 2006 16:34

Re: String minus Float rechnen!
 
[Error] Unit1.pas(134): Incompatible types: 'String' and 'Real'
[Error] Unit1.pas(138): Incompatible types: 'String' and 'Real'
[Fatal Error] invoice.dpr(5): Could not compile used unit 'Unit1.pas'

ManuMF 1. Jun 2006 16:59

Re: String minus Float rechnen!
 
Hallo,

das ist doch schon mal was ;-)

Was sind denn rechtotal und skonto für Arrays (Array of ***) ?

Aber ganz davon abgesehen: Ich würde den Code ein bisschen anders formatieren und auch noch jeweils ein Klammerpaar setzen:
Delphi-Quellcode:
if ((rechtotal[i] - skonto[i]) > total_gezahlt[i]) and (total_gezahlt[i] <> 0) then begin
  //Kunde hat zuwenig gezahlt
  zuwenig.Add(IntToStr(i));
end
else if ((rechtotal[i] - skonto[i]) < total_gezahlt[i]) then begin
  //Kunde hat zuviel gezahlt
  zuviel.Add(IntToStr(i));
end;//if
Das ist z.T. besser lesbar und beugt Fehlern im IF vor.

Dennoch liegt der Fehler wohl bei den Typen. Deshalb meine Frage oben.

Gruß,
ManuMF

roth 2. Jun 2006 07:07

Re: String minus Float rechnen!
 
rechtotal, total_gezahlt : array of real;
skonto : array of string;

habe alles auf array of real umgestellt jetzt funzt! vielen dank!


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