var i : integer;
i := 1234567;
上記を前提として、出力として文字列「1,234,567」が必要です(英国のロケールを想定)。IntToStrは私に「1234567」を与えるだけです。これにはワンライナーがあると思いますが、見つかりません...
var i : integer;
i := 1234567;
上記を前提として、出力として文字列「1,234,567」が必要です(英国のロケールを想定)。IntToStrは私に「1234567」を与えるだけです。これにはワンライナーがあると思いますが、見つかりません...
フォーマット機能を試してください。
Label1.Caption := Format('%.0n', [i + 0.0]);
または、スレッドセーフにする必要がある場合、またはシステムのデフォルト ロケールを確実に使用したい場合、またはいずれかを指定したい場合:
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;
書式設定/ロケールに関するより完全な議論については、この投稿を参照してください
s := FormatFloat('#,##0', i);
Format('%n'、[12345.678]);
stringreplace(format('%n',[1234567.0]),'.00','',[]);