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?
Format-Befehl mit einer Variable
-
- 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
Code: Alles auswählen
var
DecPlaces: Integer;
begin
DecPlaces := 4;
Label.Caption := Format('%10.' + Inttostr(DecPlaces) + 'f',[Waehrung]);
end;
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
-
- Beiträge: 6914
- 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
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
Mit Java und C/C++ sehe ich rot
Re: Format-Befehl mit einer Variable
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.
-
- Beiträge: 6914
- 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
An den * habe ich nicht mehr gedacht, aber die ist die sauberste Lösung von allen. 

Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot