![]() |
AW: Integer mit tausender trennzeichen ausgeben
Zitat:
Ergebnis ist "-.100" Besser so:
Delphi-Quellcode:
function NewIntToStr(aValue: int64; Dots: Char=#0): String;
var ii : integer; begin Result := IntToStr(Abs(aValue)); if Dots < ' ' then exit; ii := length(Result) - 2; while ii > 1 do begin Insert(Dots,Result,ii); dec(ii,3); end; if aValue<0 then Result:='-'+Result; end; |
AW: Integer mit tausender trennzeichen ausgeben
Oder eine der "fertigen" Lösungen. :angke2:
|
AW: Re: Integer mit tausender trennzeichen ausgeben
Zitat:
Dieser Code ist sehr schön, kurz und präzise. Ich persönlich ziehe (neuerdings) auch Format dem FormatFloat vor, weil man die Ausgaben vollständig formulieren kann und sich damit Ketten wie
Delphi-Quellcode:
ersparen kann und man gerade bei den Leerzeichen Fehler vermeidet. Zudem macht es das externe Ablegen/Erweitern mit anderen Sprachen einfacher.
Begin
Msg:= FormatFloat('0,', Pos) + ' von ' + FormatFloat('0,' fCount) + ' Dateien wurden fertiggestellt. [' + IntToStr(fRemain) + ' Sek. verbleibend]'; Msg:= Format('%.0n von %.0n Dateien wurden fertiggestellt. [%.0n Sek. verbleibend]', [Pos / 1, fCount / 1, fRemain / 1]); End; Deinen Code findet man gleich als erstes auch über google. Deshalb hätte ich noch eine klitzekleine Bitte/Verbesserungsvorschlag: Da ich nicht aufmerksam las und
Delphi-Quellcode:
- jedenfalls bei mir - keinerlei Fehler anzeigt, habe ich die Integer-Werte übergeben und mich fast 2h gewundert, dass nichts klappt. Und das genau so lange, bis mir auffiel, dass aus einem Integer- ein Gleitzahl-Wert durch
Format();
Delphi-Quellcode:
gemacht werden muss. Ich denke, es würde zukünftigen Suchern/Lesern erheblich vereinfachen, wenn Du das nochmal dort auffällig(er) anmerken könntest!
/1
:dp: Ich habe in der Hilfe nichts zur Zeit gefunden. Kann man mit
Delphi-Quellcode:
auch gleich Ausgaben wie
Format();
Delphi-Quellcode:
erzeugen.
[00:25]
|
AW: Re: Integer mit tausender trennzeichen ausgeben
Zitat:
|
AW: Re: Integer mit tausender trennzeichen ausgeben
Nein.
Der FormatString hat nichts mit Sprachen zu tun. Der ist immer quasi englisch, aber beim Result sieht es anders aus. Zitat:
Bleibt also nur Mathematik
Delphi-Quellcode:
Format('%2.d:%2.d', [d * 24, (d * 24 * 60) mod 60]) // TTime, bzw. Trunc oder TimeOf für TDateTime
Format('%2.d:%2.d', [HourOf(d), MinuteOf(d)]) |
AW: Re: Integer mit tausender trennzeichen ausgeben
Zitat:
|
AW: Integer mit tausender trennzeichen ausgeben
Als Tausendertrenner? Sicher?
|
AW: Integer mit tausender trennzeichen ausgeben
Ach Mist, falschrum verstanden.
Dort wird das Tausenderkomma verwendet, aber das hat nicht "direkt" mit diesem
Delphi-Quellcode:
hier zu tun,
.
aber ja, ausgegeben wird jeweils das Dezimaltrennzeichen im globalen oder übergebenen FormatSettings. Beim FormatString im FloatFormat und Dergleichen ist das "eindeutiger" und hängt unmittelbar zusammen. Format/Dezimal-"Punkt"
Delphi-Quellcode:
= verwende das Char aus FormatSettings.DecimalSeparator als Dezimaltrennzeichen
'###.###'
und das Format-"Komma"
Delphi-Quellcode:
= verwende das Char aus FormatSettings.ThousandSeparator als Tausendertrennzeichen
'###,###'
und das Zeichen
Delphi-Quellcode:
= verwende immer den String/Zeichen
'###"."###'
|
AW: Re: Integer mit tausender trennzeichen ausgeben
Zitat:
Hab ich per Zufall gefunden, und die Lösung gekriegt, für ein Problem, das ich hatte. Danke dafür. |
AW: Integer mit tausender trennzeichen ausgeben
Meine Lösung dafür ist immer
Delphi-Quellcode:
S := Format('%.0n', [MyInteger + 0.0]);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 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