Format-Befehl mit einer Variable

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Andromeda
Beiträge: 120
Registriert: So 4. Jan 2015, 20:18

Format-Befehl mit einer Variable

Beitrag von Andromeda »

Hallo,

ich schreibe ein Programm für Kryptowährungen, die eine verschiedene Anzahl von Nachkommastellen haben (2, 4 oder 8 ). Dafür brauche ich ziemlich oft den Format-Befehl. Kann ich die "2" in folgendem Befehl
Label.Caption:=Format('%10.2f',[Waehrung]);
irgendwie als Variable definieren?

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Format-Befehl mit einer Variable

Beitrag von Komoluna »

Code: Alles auswählen

var
DecPlaces: Integer;
begin
  DecPlaces := 4;
  Label.Caption := Format('%10.' + Inttostr(DecPlaces) + 'f',[Waehrung]); 
end;
MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Mathias
Beiträge: 6912
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Format-Befehl mit einer Variable

Beitrag von Mathias »

Da dies ein normaler String ist, ist dies kein Problem.

Code: Alles auswählen

const
  MyFormat = '2';
begin
  Label1.Caption := Format('%10.' + MyFormat + 'f', [Waehrung]);
end;  
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: Format-Befehl mit einer Variable

Beitrag von wp_xyz »

Es geht auch, indem man die Zahl der Nachkommastellen mit in die Parameterliste schreibt und einen Stern als Stellvertreter verwendet (http://lazarus-ccr.sourceforge.net/docs ... ormat.html):

Code: Alles auswählen

var
  digits: Integer;
  zahl: Double;
  s: String;
begin
  digits := 3;
  zahl := pi;
  s := Format('%.*f', [digits, Zahl]);
// Oder mit deiner Maske
  s := Format('%10.*f', [digits, Zahl]);
// Oder, wenn auch die "10" variabel sein soll
  s := Format('%*.*f', [anzahl, digits, Zahl]);
Zuletzt geändert von wp_xyz am So 19. Jun 2016, 18:12, insgesamt 1-mal geändert.

Mathias
Beiträge: 6912
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Format-Befehl mit einer Variable

Beitrag von Mathias »

An den * habe ich nicht mehr gedacht, aber die ist die sauberste Lösung von allen. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten