返回格式化字符串(类似 C 语言的 sprintf() 函数).
StringFormat ( "格式控制", 变量1 [, ... 变量32]
)
格式控制 | 使用的格式和标志 (见备注). |
变量1...变量32 | 最多 32 个依照 "格式控制" 输出的变量. |
类型 | 变量类型 | 输出格式 |
---|---|---|
d, i | 整数 | 带符号十进制整数. |
o | 整数 | 无符号八进制整数. |
u | 整数 | 无符号十进制整数. |
x | 整数 | 无符号十六进制整数, 使用小写 "abcdef". |
X | 整数 | 无符号十六进制整数, 使用大写 "ABCDEF". |
e | 浮点 | 带符号数值, 形如: [ - ]d.dddd e
[sign]ddd, 其中 d 是一个单一的十进制数字, dddd 是一或多位小数, ddd 是精确的三位小数, sign 为 + 或 -. |
E | 浮点 | 等同于 e 格式, 只是改用 E 而非 e 作为指数. |
f | 浮点 | 带符号数值, 形如: [ - ]dddd.dddd, 其中 dddd 是一个或多个十进制数字. 该数字小数点前的数位取决于数字的大小, 小数点后的数位取决于所要求的精度. |
g | 浮点 | 以 f 或 e 格式打印带符号值, 无论哪一个给定值和精度都是以紧凑格式打印. e 格式用在值指数小于 -4 或大于等于精度参数时, 尾随零被切断, 而且十进制小数点只在有一或较多数字跟随时出现. |
G | 浮点 | 等同于 g 格式, 但使用 E, 而不是 e 作为指数 (如适用). |
s | 字符串 | 字符串. |
标志 | 意义 | 默认值 |
---|---|---|
- | 在给定字段宽度内左对齐结果. | 右对齐. |
+ | 如果输出值是带符号类型, 输出值前缀使用符号(+ 或 -). | 仅当负值时出现负号 (-). |
0 | 如果宽度以 0 开头, 则添加 0 到最小宽度. 如果 0 和 - 出现, 0 被忽略. 如果 0 与整数格式(i, u, x, X, o, d)一起指定, 0 被忽略. |
不添加 0. |
Blank | 如果输出值为带符号的正值, 则输出数值前缀用一个空白符; 如果空白符和 + 标志同时出现, 空白符被忽略. |
不出现空白符. |
# | 使用 o, x, 或 X 格式时, 标志 # 表示任何非零输出值前缀分别使用 0, 0x, 或 0X. |
不出现空白符. |
# | 使用 e, E, or f 格式时, 标志 # 强制输出值在所有情况下都包含一个十进制小数点. |
只在有数字跟随时出现十进制小数点. |
# | 使用 g 或 G 格式时, 标志 #
强制输出值在所有情况下都包含一个十进制小数点, 并且避免截断尾随零. 使用 c, d, i, u, 或 s 格式时忽略. |
只在有数字跟随时, 十进制小数点才会出现. 并截断尾随零. |
类型 | 意义 | 默认值 |
---|---|---|
d, i, u, o, x, X | "精度"指定打印的最小位数. 如果位数变量小于精度值, 输出值左边由 0 填补. 当位数超过精度, 不截断输出值. |
默认精度为 1. |
e, E | "精度"指定十进制小数点后的打印位数. 最后打印值将四舍五入. | 默认精度 6; 如果精度为 0 或句点(.), 没有跟随其它数, 则不打印十进制小数点. |
f | "精度"指定小数点后的位数. 如果出现十进制小数点, 则在它之前至少应出现一位数字. 该值将四舍五入为适当的数字. |
默认精度 6; 如果精度为 0 或句点(.), 没有跟随其它数, 则不打印十进制小数点. |
g, G | "精度"指定有效打印位数. | 打印六位有效数字, 任何尾随零截断. |
s | "精度"指定打印的最大字符数. 超过精度的字符不打印. | 打印字符, 直到遇到空字符为止. |
Local $n
= 43951789;
Local $u
= -43951789;
; 注意: 双 %%, 表示要打印一个 '%' 符号
printf("%%d = '%d'\n", $n);
'43951789'
标准整数表示法
printf("%%e = '%e'\n", $n);
'4.395179e+007'
科学记数法
printf("%%u = '%u'\n", $n);
'43951789'
无符号正整数
printf("%%u <0 = '%u'\n",
$u);
'4251015507'
无符号正整数
printf("%%f = '%f'\n", $n);
'43951789.000000'
浮点小数
printf("%%.2f = '%.2f'\n",
$n);
'43951789.00'
浮点数,十进制小数点后2位数字
printf("%%o = '%o'\n", $n);
'247523255'
八进制数
printf("%%s = '%s'\n", $n);
'43951789'
表示字符串
printf("%%x = '%x'\n", $n);
'29ea6ad'
十六进数表示法
(小写)
printf("%%X = '%X'\n", $n);
'29EA6AD'
十六进数表示法
(大写)
printf("%%+d = '%+d'\n", $n);
'+43951789'
正整数
printf("%%+d <0= '%+d'\n",
$u); '-43951789'
负整数
$s = 'monkey';
$t = 'many monkeys';
printf("%%s = [%s]\n", $s);
[monkey]
字符串标准输出
printf("%%10s = [%10s]\n",
$s);
[ monkey]
右对齐,有空格
printf("%%-10s = [%-10s]\n",
$s);
[monkey ]
左对齐,有空格
printf("%%010s = [%010s]\n",
$s);
[0000monkey]
字串前填充 0
printf("%%10.10s = [%10.10s]\n",
$t); [many monke]
左对齐 保留10个字符,其余截断
printf("%04d-%02d-%02d\n",
2008, 4, 1);
Func Printf($format, $var1, $var2 = -1,
$var3 =
-1)
If
$var2 =
-1 Then
ConsoleWrite(StringFormat($format, $var1))
Else
ConsoleWrite(StringFormat($format, $var1, $var2, $var3))
EndIf
EndFunc ;==>Printf
provider with jb51.net (unicode) |