Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zahl formatieren mit Format (https://www.delphipraxis.net/96661-zahl-formatieren-mit-format.html)

grenzgaenger 28. Jul 2007 19:50


Zahl formatieren mit Format
 
Hallo Zusammen,

ich möchte gerne 'n float wert in einen string formatieren. dazu wollte ich gerne den format befehl verwenden
Delphi-Quellcode:
s := format('%7.2f',[zahl]);
doch was kommt bei raus ... 1,234,5344.94 amerikanische notation! in den ländereinstellungen sind die tausendertrennzeichen und dezimaltrennzeichen definiert. mit floattostrf(zahl, ffnumber, 7, 2) erkennt er diese auch vernünftig. doch hat format mehr möglichkeiten, welche ich gerne nutzen möchte. weiss jemand von euch, an was es liegen könnt...? :gruebel: :gruebel: :gruebel:

dank für euere hilfe

Christian Seehase 28. Jul 2007 19:55

Re: Zahl formatieren mit Format
 
Moin Grenzgaenger,

Du hast nicht zufälliger Weise irgendewo die Variable DecimalSeparator auf . umgestellt?

grenzgaenger 28. Jul 2007 20:27

Re: Zahl formatieren mit Format
 
hoi chris,

leider nicht. an anderer stelle hab ich ihn zwar mal verbogen, aber anschliessend auch wieder zurück... nur am deciamalseparator kanns aber nicht liegen, da er auch das tausendertrennzeichen falsch wählt , statt '

das merkwürdige dabei ist... bei den anderen formatroutinen wie formatfloat, floattostrf macht er das wieder richtig, nur beim format eben nicht... :gruebel:

Lannes 28. Jul 2007 21:55

Re: Zahl formatieren mit Format
 
Hallo,

bist Du Dir sicher, das dass Ergebnis von Format kommt?

Das Argument '%7.2f' liefert eigentlich keine Tausendertrennzeichen,
oder hat sich da was in neueren Delphi-Versionen geändert?

grenzgaenger 28. Jul 2007 23:17

Re: Zahl formatieren mit Format
 
Liste der Anhänge anzeigen (Anzahl: 1)
also, hab es nochmals ausprobiert, hierzu der folgende code:

Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils;

var
 x: currency;
begin
 x := 12343423.234;
 writeln(format('%f7.2',[x]));
 readln;
end.
dabei wird folgender output erzeugt, wie im Anhang sichtbar...

tja, ... viel kann man an den code schnippsel nicht verkehrt machen, oder?

Lannes 28. Jul 2007 23:32

Re: Zahl formatieren mit Format
 
Hallo,

doch, %f7.2 oder %7.2f :zwinker:

Das bei %f7.2 und 12343423.234 das Ergebnis 12343423,237.2 rauskommt ist klar,
denn das Formatierungsargument ist in dem Fall nur %f die 7.2 wird als anzuhängenden Text interpretiert.
Dadurch das keine Wert für prec angegeben ist werden automatisch 2 Nachkommastellen ausgegeben.

[Werbung]FSCode-Producer 0.a[/Werbung]

grenzgaenger 28. Jul 2007 23:43

Re: Zahl formatieren mit Format
 
danke, in diesem fall, sass das problem vor dem bildschirm :wall: :wall:

danke, und noch einen schönen abend :)


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