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

时间:2015-09-27 18:38:19

标签: inno-setup pascalscript

我正在尝试使用千位分隔符(在本例中为逗号)找到格式化数字的方法,以便我可以以更易读且更友好的方式向用户显示该数字。我知道显然我必须首先使用IntToStr将整数转换为字符串,然后可能使用Length来返回字符串的长度,我一直在考虑使用{{1}的可能性函数插入逗号。问题是Insert从左侧索引位置起作用,我正在努力研究如何从正确的索引中做到这一点。另外,我必须为每个插入添加Insert字符串长度,并跟踪已经进行了多少次插入。这似乎是一种非常复杂的方法,特别是随着数量的增长。是否有一种简单的方法来格式化一个我忽略的千位分隔符的数字?

1 个答案:

答案 0 :(得分:2)

要根据当前区域设置格式化数字(而不是硬编码美国/英国风格的“逗号”),请使用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指定您不需要小数点(因为输入是整数)。

有关详细信息,请参阅http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.Format