Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 1000er Trennpunkte mit drei Nachkommestellen (https://www.delphipraxis.net/133986-1000er-trennpunkte-mit-drei-nachkommestellen.html)

HolgerCW 13. Mai 2009 12:46


1000er Trennpunkte mit drei Nachkommestellen
 
Hallo zusammen,

ich habe mit folgender Formatierung ein Problem:

Delphi-Quellcode:
S := Format('%n', [StrToFloat(S)]);
Diese setzt mir zwar überall einen 1000er - Trennpunkt wo einer hingehört, nur bei einer Zahl mit drei Nachkommastellen rundet er einfach auf zwei Nachkommstellen auf. Wie kann ich das Problem lösen ?

So: 1234,789 -> 1.234,79, soll aber -> 1.234,789

Gruss

Holger

kretabiker 13. Mai 2009 12:50

Re: 1000er Trennpunkte mit drei Nachkommestellen
 
Sollte das nicht mit

Delphi-Quellcode:
S := Format('%.3n', [StrToFloat(S)])
funktionieren?

HolgerCW 13. Mai 2009 12:52

Re: 1000er Trennpunkte mit drei Nachkommestellen
 
Und was macht die Formatierung, wenn eine Zahl mit zwei Nachkommastellen kommt.

Er soll auch nicht aus: 1234,23 -> 1.234,230 machen

Gruss

Holger

kretabiker 13. Mai 2009 13:02

Re: 1000er Trennpunkte mit drei Nachkommestellen
 
Ah so. Das hatte ich so nicht aus deiner ersten Nachricht raus gelesen. Da hast du natürlich Recht, mit %.3n werden immer drei Nachkommastellen angezeigt.

Ich schätze mal, da kommst du mit der Format-Funktion nicht weiter. Um was geht es dir denn? Nur um das Einfügen von Tausender-Trennzeichen in den Ursprungsstring?

HolgerCW 13. Mai 2009 13:04

Re: 1000er Trennpunkte mit drei Nachkommestellen
 
Genau. Egal welche Zahl kommt und wieviele Nachkommastellen diese hat.

Ich werde aber nun mit Deiner Formatierung und vorheriger Abfrage der Nachkommastellen arbeiten. Mal formatiere ich dann mit .3n oder .1n u.s.w....

vsti 13. Mai 2009 13:37

Re: 1000er Trennpunkte mit drei Nachkommestellen
 
Delphi-Quellcode:
  FormatFloat('#,##0.00#',12345.6789)) => '12.345,679'
  FormatFloat('#,##0.00#',12345.6700)) => '12.345,67'

HolgerCW 19. Mai 2009 14:30

Re: 1000er Trennpunkte mit drei Nachkommestellen
 
Hallo,

wie müsste ich es denn formatieren, wenn ich aus:

12345.670 -> 12.345,670 machen möchte. Will die letzte Null quasi mit anzeigen ?

Gruss

Holger

TeronG 19. Mai 2009 14:38

Re: 1000er Trennpunkte mit drei Nachkommestellen
 
Zitat:

Zitat von HolgerCW
wie müsste ich es denn formatieren, wenn ich aus:

12345.670 -> 12.345,670 machen möchte. Will die letzte Null quasi mit anzeigen ?

Delphi-Quellcode:
FormatFloat(',0.000', Zahl);
Just 4 Info:
OH meint (u.a.) noch:
Hat die zu formatierende Zahl mehr Vorkommastellen, als Ziffernplatzhalter links des '.' im Format-String vorhanden sind, werden die zusätzlichen Stellen vor dem ersten Platzhalter ausgegeben. --> '#' links kannste weglassen :)

Tausendertrennzeichen. Enthält der Format-String ein oder mehrere ','-Zeichen, werden in den Ausgabe-String ... nach jeder Gruppe von drei Ziffern Tausendertrennzeichen eingefügt. Die 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.


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