Inno Setup 使用千位分隔符格式化数字

Inno Setup format a number with a thousand separator

我正在尝试找到一种方法来格式化带有千位分隔符(在本例中为逗号)的数字,以便我可以以更易读和更友好的方式向用户显示数字。我清楚地知道我必须首先将整数转换为字符串,使用 IntToStr 然后可能使用 Length 到 return 字符串的长度,我一直在寻找使用的可能性Insert 函数插入逗号。问题是 Insert 从左侧索引位置开始工作,而我正在努力弄清楚如何从右侧索引位置执行此操作。此外,我必须将 1 添加到每个插入的字符串长度,并跟踪已进行的插入次数。这似乎是一种相当复杂的方法,尤其是随着数字的增长。有没有一种简单的方法可以用我忽略的千位分隔符来格式化数字?

要根据当前区域设置格式化数字(而不是硬编码 US/UK-style“逗号”),请使用 Format support function:

var
  D: Integer;
  S: string;
begin
  D := 1234567;
  S := Format('%.0n', [double(D)]);
end;

S 将是:

  • 英国语言环境:1,234,567
  • 德语语言环境:1.234.567
  • 捷克语言环境:1 234 567

.0 指定您不需要小数点(因为输入是整数)。

详情见https://docwiki.embarcadero.com/Libraries/en/System.SysUtils.Format