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
我正在尝试找到一种方法来格式化带有千位分隔符(在本例中为逗号)的数字,以便我可以以更易读和更友好的方式向用户显示数字。我清楚地知道我必须首先将整数转换为字符串,使用 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