Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Float -> Runden auf 3 Stellen -> String - Format? (https://www.delphipraxis.net/73060-float-runden-auf-3-stellen-string-format.html)

ManuMF 11. Jul 2006 18:57


Float -> Runden auf 3 Stellen -> String - Format?
 
Haalo,

ich möchte einen Float auf einen "3-Stellen-String" ;-) runden. Ich weiß, dass es dazu Format bzw. FloatToStrF gibt, und habe zu denen in der Hilfe nachgeschlagen, komme aber nicht damit zurecht. :gruebel:

Daher bräuchte ich den Teil des Format-Strings oder eine Lösung mit FloatTo...
Delphi-Quellcode:
Str := Format('Zeit: ??? sec', [Z]);
Danke,
ManuMF

DGL-luke 11. Jul 2006 19:06

Re: Float -> Runden auf 3 Stellen -> String - Format?
 
Beio floattostrf sollte eigentlcih alles klar sein...
als format sollte ffgeneral reichen, bei precision gibst du die nachkommastellen ein, bei digits die mindestzahl stellen (wird mit 0 von vorne aufgefüllt).

Delphi-Quellcode:
Showmessage(FloattostrF(1.2345,ffGeneral,2,5,dummy);
bei formatsettings einfach n "dummy" rein, ich weiß da auch grad nicht, was man genau machen muss (ja, in der OH stehts,aber das schrieb da jetzt nicht auch noch hin)

ManuMF 11. Jul 2006 19:13

Re: Float -> Runden auf 3 Stellen -> String - Format?
 
Hallo,

OK, FloatToStrF ist jetzt soweit klar (wobei ich FormatSettings nicht habe...), bis auf den Sinn von Digits. Wenn ich
Delphi-Quellcode:
FloatToStrF(Z, ffGeneral, 3, 1);
verwende (ich will keine Null vorne, also muss Digits = 1 sein :?: ), hat das Ergebnis immer 2 Stellen nach dem Komma, auch wenn ich Precision erhöhe.

Aber manchmal brauche ich eben auch Format, daher interessiert mich eine Lösung dafür.

Gruß,
ManuMF

marabu 11. Jul 2006 19:20

Re: Float -> Runden auf 3 Stellen -> String - Format?
 
Nugat:

Delphi-Quellcode:
var
  s: String;
  z: Extended;
begin
  z := 12340.567891;
  s := Format('"%*.*f"', [10, 3, z]);
end;
Grüße vom marabu

Michael Habbe 11. Jul 2006 19:23

Re: Float -> Runden auf 3 Stellen -> String - Format?
 
Zitat:

Zitat von ManuMF
ich möchte einen Float auf einen "3-Stellen-String" ;-) runden. Ich weiß, dass es dazu Format bzw. FloatToStrF gibt, und habe zu denen in der Hilfe nachgeschlagen, komme aber nicht damit zurecht. :gruebel:

Daher bräuchte ich den Teil des Format-Strings oder eine Lösung mit FloatTo...
Delphi-Quellcode:
Str := Format('Zeit: ??? sec', [Z]);

Hallo, verwende:

Delphi-Quellcode:
  str := Format('Zeit: %0.3f sec', [Z]);
Gibt immer drei Stellen nach dem Komma, also auch mit Nullen aufgefüllt.

ManuMF 11. Jul 2006 19:45

Re: Float -> Runden auf 3 Stellen -> String - Format?
 
Hallo,

danke, so funktioniert es :thumb:

Kann ich dabei immer 0.Stellen verwenden?

Gruß,
ManuMF

Michael Habbe 11. Jul 2006 19:49

Re: Float -> Runden auf 3 Stellen -> String - Format?
 
Zitat:

Zitat von ManuMF
Kann ich dabei immer 0.Stellen verwenden?

Die "0." besagt, wie lang der String mindestens werden soll. So ist z.B. "15." die gesamte Länge mit Vor- und Nachkommaanteil incl. ".", dann wird evtl. mit Leerzeichen vorne aufgefüllt. Ist der "Dezimalstring" allerdings z.B. schon 20 Zeichen lang, wird er auch so dargestellt, d. h. es wird nichts abgeschnitten.


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