Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 2 Nachkommastellen (https://www.delphipraxis.net/150132-2-nachkommastellen.html)

Ouou 8. Apr 2010 09:50


2 Nachkommastellen
 
Hallo Delphianer,

ich habe hier ein kleines problem und zwar habe benötige ich in meinen Edits 2 Nachkommastellen.

Hier habe ich mal einen Quellcode wie es bei mir aussieht bis jetzt.

Delphi-Quellcode:
for i := 1 to 12 do
  begin
    ergebnis := ergebnis + FloatToStrF(TEdit(FindComponent('Edit' + IntToStr(i))).Text, ffFixed, 8, 2);
  end;
Müsste eigentlich die richtige Funktion sein...

Kann jemand helfen?

MFG

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]

mkinzler 8. Apr 2010 09:51

Re: 2 nach Kommastellen
 
Ich würde erst das Ergebnis formatieren

Teekeks 8. Apr 2010 09:52

Re: 2 nach Kommastellen
 
was ist daran deiner Meinung nach falsch?
Was kommt bei raus/ was bekommst du für eine Fehlermeldung?

Deep-Sea 8. Apr 2010 09:56

Re: 2 nach Kommastellen
 
Zitat:

Zitat von Ouou
Delphi-Quellcode:
for i := 1 to 12 do
  begin
    ergebnis := ergebnis + FloatToStrF(TEdit(FindComponent('Edit' + IntToStr(i))).Text, ffFixed, 8, 2);
  end;

FloatToStr wandelt einen Float-Wert in einen String um - logisch. Aber du gibst ihm mit TEdit.Text einen String rein, anstatt einer Zahl. Wenn ergebnis eine Float-Variable ist, müsstest du wohl eher StrToFloat nutzen.

Ouou 8. Apr 2010 10:16

Re: 2 Nachkommastellen
 
Wenn ich es mit StrToFloat mache sind es zu viele parameter...

Delphi-Quellcode:
for i := 1 to 12 do
  begin
    ergebnis := ergebnis + StrToFloat(TEdit(FindComponent('Edit' + IntToStr(i))).Text, ffFixed, 8, 2);
  end;
Sry mein Fehler ich poste mal den ganzen Quellcode von der procedure.

Delphi-Quellcode:
procedure TfrmKostenaufstellung.Edit1Change(Sender: TObject);

var
  ergebnis: Real;
  i: integer;
begin
  ergebnis := 0;

  for i := 1 to 12 do
  begin
    ergebnis := ergebnis + StrToFloat(TEdit(FindComponent('Edit' + IntToStr(i))).Text, ffFixed, 8, 2);
  end;
  Edit1201.Text := FloatToStrF(ergebnis, ffFixed, 8, 2);
begin
  ergebnis :=0;

  for i := 1201 to 1206 do
  begin
    ergebnis := ergebnis + StrToFloatDef(TEdit(FindComponent('Edit' + IntToStr(i))).Text,0);
  end;
  prodLK.Text := FloatToStrF(ergebnis, ffFixed, 8,2);
end;
end;

DeddyH 8. Apr 2010 10:21

Re: 2 Nachkommastellen
 
Delphi-Quellcode:
ergebnis := ergebnis + StrToFloat(TEdit(FindComponent('Edit' + IntToStr(i))).Text);
BTW:
Zitat:

Delphi-Quellcode:
Edit1201.Text

:shock: Da steigst Du noch durch?

himitsu 8. Apr 2010 10:23

Re: 2 Nachkommastellen
 
Zitat:

Wenn ich es mit StrToFloat mache sind es zu viele parameter...
Dann wäre es gut, wenn du dir mal ansiehst, was Delphi-Referenz durchsuchenStrToFloat für Parameter möchte?

Zitat:

Da steigst Du noch durch?
Es muß ja nicht heißen, daß alle "Nummern" verwendet sind (hoffe ich mal),
sondern daß er sich sozusagen Zifferngruppen erstellt hat.

z.B. 1. Zeile Edit101 bis Edit106 und eben 12. Zeile Edit1201 bis Edit1206 :zwinker:

Mit über 1200 Edits und noch anderen Kompunenten wäre die Form ja etwas "überfüllt" :roll:

Ouou 8. Apr 2010 10:31

Re: 2 Nachkommastellen
 
jap da steig ich noch durch... :)
ich habs genauso gemacht wie himitsu es geschrieben hat...

bei diesem beispiel habe ich die zifferngruppe 1-12 (edits). und den edits will ich 2 nach kommastellen hinzufügen.

Ouou 8. Apr 2010 10:39

Re: 2 Nachkommastellen
 
wenn ich es mit

Delphi-Quellcode:
ergebnis := ergebnis + StrToFloat(TEdit(FindComponent('Edit' + IntToStr(i))).Text);
mache, kommt eine debuger-exception das im projekt eine exception der klasse EConvertError mit der Meldung ' " ist kein gültiger Gleitkommawert' aufgetreten.

DeddyH 8. Apr 2010 10:41

Re: 2 Nachkommastellen
 
Dann nimm halt TryStrToFloat oder StrToFloatDef.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr.
Seite 1 von 3  1 23      

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