7
var i : integer;

i := 1234567;

上記を前提として、出力として文字列「1,234,567」が必要です(英国のロケールを想定)。IntToStrは私に「1234567」を与えるだけです。これにはワンライナーがあると思いますが、見つかりません...

4

6 に答える 6

21

フォーマット機能を試してください。

Label1.Caption := Format('%.0n', [i + 0.0]);
于 2008-11-17T16:24:25.187 に答える
11

または、スレッドセーフにする必要がある場合、またはシステムのデフォルト ロケールを確実に使用したい場合、またはいずれかを指定したい場合:

function FormatIntFromLCID(const AValue: Integer; const LCID: Integer = LOCALE_SYSTEM_DEFAULT): string;
var
  AFormatSettings: TFormatSettings;
begin
  GetLocaleFormatSettings(LCID, AFormatSettings);
  Result := FormatFloat('#,##0',AValue, AFormatSettings);
end;

書式設定/ロケールに関するより完全な議論については、この投稿を参照してください

于 2008-11-17T20:57:17.913 に答える
6

s := FormatFloat('#,##0', i);

于 2008-11-17T16:23:54.547 に答える
-1

Format('%n'、[12345.678]);

于 2008-11-17T18:43:01.863 に答える
-1
stringreplace(format('%n',[1234567.0]),'.00','',[]);
于 2008-11-17T16:36:00.543 に答える