![]() |
FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen
Moin zusammen,
ich habe folgenden Code
Delphi-Quellcode:
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.
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 $ 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 |
AW: FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen
Nach Doku:
Zitat:
|
AW: FormatFloat : Gerundete ganze Zahlen mit Punkt als Tausendertrennzeichen
Die Dokumentation ist da doch eindeutig
![]() 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 ![]() |
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);
|
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 22:46 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