如何使用Delphi中的当前语言环境格式化Integer

时间:2008-11-17 16:07:57

标签: delphi text-formatting

var i : integer;

i := 1234567;

鉴于上述情况,我希望字符串“1,234,567”作为输出(假设英国语言环境)。 IntToStr只给了我“1234567”。我确定这是一个单行,但我找不到它......

6 个答案:

答案 0 :(得分:18)

尝试格式化功能。

Label1.Caption := Format('%.0n', [i + 0.0]);

答案 1 :(得分: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;

有关格式化/区域设置的更完整讨论,请参阅this post

答案 2 :(得分:6)

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

答案 3 :(得分:0)

我有此功能,其中d表示十进制数:

function dn(i: integer): string; 
begin 
  result := format('%.0n', [i.ToDouble]) 
end;

答案 4 :(得分:-1)

stringreplace(format('%n',[1234567.0]),'.00','',[]);

答案 5 :(得分:-1)

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