Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen (https://www.delphipraxis.net/175475-formatfloat-gerundete-ganze-zahlen-mit-punkt-als-tausendertrennzeichen.html)

Piro 24. Jun 2013 15:03

FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen
 
Moin zusammen,

ich habe folgenden Code
Delphi-Quellcode:
var
 expected_cat_hours_dollar : Real;
...
expected_cat_hours_dollar := 8991,567;

lbl_expected_cat_hours_dollar.Caption := FormatFloat(',0', expected_cat_hours_dollar) + ' $';
// Ausgabe : 8992 $
Das Ergebnis ist so wie ich es haben möchte. Es sollen immer ganze Zahlen herauskommen ohne Nachkommastelle und der Tausendtrenner soll ein Punkt sein.

Bin mir nur nicht ganz sicher, ob ich mit ",0" die richtige Formatierung genommen habe. Die Dokumentation zu FormatFloat und die Artikel im Netz haben mich sehr verwirrt und lassen mich zweifel, dass ich es nicht zu 100% richtig gemacht habe.

Wäre schön, wenn mir einer von Euch meinen Code bestätigen kann oder eventuell noch Verbesserung vorschlägt.

Danke im Voraus.
Sven

Der schöne Günther 24. Jun 2013 15:08

AW: FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen
 
Nach Doku:
Zitat:

Position und Anzahl der Trennzeichen im Format-String wirkt sich nicht auf die Ausgabe aus. Sie geben nur an, dass Trennzeichen eingefügt werden sollen
Ist doch so alles ok denke ich? :-)

Sir Rufo 24. Jun 2013 15:12

AW: FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen
 
Die Dokumentation ist da doch eindeutig

Delphi-Referenz durchsuchenSysUtils.FormatFloat

Mit dem "," ist das Tausender-Trennzeichen gemeint.
Welches das aber genau ist, hängt von den FormatSettings des Systems ab.

Willst du generell festlegen, dass es immer der "." ist, dann solltest du die überladene Version von FormatFloat benutzen und die gewünschten FormatSettings mit angeben.

Da es sich aber um einen Währungsbetrag handelt, würde ich eher auf Delphi-Referenz durchsuchenSysUtils.FormatCurr zurückgreifen ;)

Gollum 26. Jun 2013 06:44

AW: FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen
 
Hallo,

die gewünschte Formatierung erhällst Du folgendermaßen:
Delphi-Quellcode:
  lbl_expected_cat_hours_dollar.Caption := FormatFloat('#,#0 $', expected_cat_hours_dollar);

Furtbichler 26. Jun 2013 07:09

AW: FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen
 
Da das '#' Zeichen im Formatstring nur besagt, das optional (d.h. wenn sie denn da ist) eine Ziffer angezeigt werden soll, kann man sie (vor dem Dezimaltrenner) auch weglassen. Insofern ist '#,#0' mit ',0' kompatibel und erzeugt das gleiche Ergebnis. Imho ist jedoch '#,#0' besser zu lesen, denn es bedeutet: Verwende Tausendertrenner und zeige eine Null als '0' an. '#,#' würde die 0 als Leerstring anzeigen.

Das identische ',0' bzw. ',' sieht blöd aus, meint das Gleiche, sagt aber: :gruebel:


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