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);

格式('%n',[12345.678]);

stringreplace(format('%n',[1234567.0]),'.00','',[]);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top