% format %2s 100
100
% format %.2s 100
10
%
%
% format %0.2s 100
10
%
我无法理解%2s和%.2s之间的区别。
任何人都可以解释一下吗?
答案 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
在最后一个示例中,请注意所有数字和点都按字段长度计算,并且数字已经舍入。