Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit StrToFloatF (https://www.delphipraxis.net/22821-problem-mit-strtofloatf.html)

Neutral General 24. Mai 2004 15:12


Problem mit StrToFloatF
 
Ich versuche vergeblich einen Real-Wert so zu formatieren das er keine Nachkommastellen mehr hat.

Delphi-Quellcode:
if Sprite is TStrom then begin
   Leben := StrToFloat(Form1.Label7.Caption);
   Leben := Leben - 0.2;
   Form1.Label7.Caption := FloatToStrF(Leben,ffFixed,3,0);
end;
So : Dabei passiert rein gar nichts ! Im Formular hat Label7 immer noch den gleichen Wert.

Delphi-Quellcode:
if Sprite is TStrom then begin
   Leben := StrToFloat(Form1.Label7.Caption);
   Leben := Leben - 0.2;
   Form1.Label7.Caption := FloatToStrF(Leben,ffFixed,3,1);
end;
So funktioniert es, aber es ist eben noch eine Stelle nach dem Komma da ...
Das seltsame ist :

Delphi-Quellcode:
if Sprite is TStrom then begin
   Leben := StrToFloat(Form1.Label7.Caption);
   Leben := Leben - 0.6;
   Form1.Label7.Caption := FloatToStrF(Leben,ffFixed,3,0);
end;
So funktioniert es super. Hier ist das Problem aber das ich in 0.2er Schritten abziehen will ...
Sobald ich bei
Delphi-Quellcode:
Leben := Leben - 0.6;
weniger als 0.6 abziehe funktioniert es nicht ...

Christian18 24. Mai 2004 15:18

Re: Problem mit StrToFloatF
 
hi,

um die Nachkomma stelle weg zu bekommen kannst du auch mit runden viel erreichen.

Bsp.

du hast eine zahl in einer variablen z.b. variable a und wert 10,1

also

a:=10,1

dann

a:=round(a/100*100)

Neutral General 24. Mai 2004 15:30

Re: Problem mit StrToFloatF
 
Mh.. ich weis nicht ob das was bringt ... Das soll ja die Lebensenergieanzeige von einem (einfachen) Spiel sein und die wird immer wenn man gegen TStrom läuft um 0.2 verringert.
Der Wert verändert sich also immer.

gordon freeman 24. Mai 2004 16:37

Re: Problem mit StrToFloatF
 
So wie ich das sehe wird das Leben ja nur um die Nachkommastelle verändert. Wenn du diese nicht anzeigst wird auch nichts verändert. Du müsstest also 5 mal draufdrücken, damit 1 Leben abgezogen wird und und es angezeigt wird. Wenn du 0.6 abzeihst rundet der Rechner automatisch ab und es wird 1 abgezogen! Bei 0.2 wird aufgerundet und es passsiert nichts! :wink:

IngoD7 24. Mai 2004 17:01

Re: Problem mit StrToFloatF
 
Habe ich jetzt nur die Hälfte verstanden? Oder warum nimmst du nicht einfach

Delphi-Quellcode:
Form1.Label7.Caption := IntToStr(Trunc(Leben));

Neutral General 25. Mai 2004 14:55

Re: Problem mit StrToFloatF
 
Oh, danke ... es funktioniert. Hatte ich ganz vergessen ... :gruebel: :wall:


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