关于TCL格式命令

时间:2013-09-18 08:08:51

标签: tcl

% format %2s 100
100

% format %.2s 100
10
%
%

% format %0.2s 100
10
%

我无法理解%2s和%.2s之间的区别。

任何人都可以解释一下吗?

1 个答案:

答案 0 :(得分:4)

TCL format command manual page指定格式字符串可以包含六个不同的部分。在这种情况下,第二,第三和第四部分是感兴趣的。

如果有一个字符来自[ - + 0#],它们指定字段的对齐方式,如果应该有填充,数字符号显示等等。第三个例子中的0指定该数字应该用零填充而不是空格。但是,在这个例子中没有任何内容可以填充。

如果有其他数字没有点(第一个例子中为2),则该数字被解释为最小字段长度,如果需要,数字用空格填充。

如果有一个点,则后面的数字如果被解释为精度指示符,它的行为方式会有所不同,具体取决于其他格式参数。对于字符串,它表示最大字符数。

使用

format %4.2s foo

然后你得到

  fo

即,最多打印两个字符,但字段宽度至少为4个字符。

如果您实际上是在尝试打印数字而不是字符串,那么第六个(唯一必需的)字段很重要。 “s”表示“按原样打印”。对于要使用的数字,例如“d”表示浮点数的十进制(整数)或“f”。查看手册以获取整个列表。

使用

format %4.2d 100 # Print with at least two numbers and with field width of 4 characters

你得到了

 100

format %08.2f 123.45678 # Field width 8, pad with zeros, print two decimals

你得到了

00123.46

在最后一个示例中,请注意所有数字和点都按字段长度计算,并且数字已经舍入。