关于TCL格式命令

关于TCL格式命令,tcl,Tcl,我无法理解%2s和%.2s之间的区别 谁能解释一下吗?指定格式字符串可以由六个不同的部分组成。在这种情况下,第二、第三和第四部分是令人感兴趣的 如果集合[-+0#]中有一个字符,则它们指定字段的对齐方式、是否应该有填充、数字的符号显示等。第三个示例中的0指定数字应该用零而不是空格填充。然而,在这个例子中,没有什么需要填充的 如果有其他没有点的数字(在第一个示例中为2),则该数字将被解释为最小字段长度,如果需要,该数字将填充空格 如果有点,则If后面的数字被解释为精度指示器,其行为方式因其他格式参

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

谁能解释一下吗?

指定格式字符串可以由六个不同的部分组成。在这种情况下,第二、第三和第四部分是令人感兴趣的

如果集合[-+0#]中有一个字符,则它们指定字段的对齐方式、是否应该有填充、数字的符号显示等。第三个示例中的0指定数字应该用零而不是空格填充。然而,在这个例子中,没有什么需要填充的

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

如果有点,则If后面的数字被解释为精度指示器,其行为方式因其他格式参数而异。对于字符串,它表示最大字符数

然后你得到

format %4.2s foo
也就是说,最多打印两个字符,但字段宽度至少为4个字符

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

你得到

format %4.2d 100 # Print with at least two numbers and with field width of 4 characters
format %08.2f 123.45678 # Field width 8, pad with zeros, print two decimals

你得到

format %4.2d 100 # Print with at least two numbers and with field width of 4 characters
format %08.2f 123.45678 # Field width 8, pad with zeros, print two decimals
在最后一个示例中,请注意,所有数字和圆点都是按字段长度计算的,并且数字已四舍五入。

指定格式字符串可以由六个不同的部分组成。在这种情况下,第二、第三和第四部分是令人感兴趣的

如果集合[-+0#]中有一个字符,则它们指定字段的对齐方式、是否应该有填充、数字的符号显示等。第三个示例中的0指定数字应该用零而不是空格填充。然而,在这个例子中,没有什么需要填充的

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

如果有点,则If后面的数字被解释为精度指示器,其行为方式因其他格式参数而异。对于字符串,它表示最大字符数

然后你得到

format %4.2s foo
也就是说,最多打印两个字符,但字段宽度至少为4个字符

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

你得到

format %4.2d 100 # Print with at least two numbers and with field width of 4 characters
format %08.2f 123.45678 # Field width 8, pad with zeros, print two decimals

你得到

format %4.2d 100 # Print with at least two numbers and with field width of 4 characters
format %08.2f 123.45678 # Field width 8, pad with zeros, print two decimals

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

最好使用
foo
或其他字符串表示
%s
。这个数字无关紧要。我认为
0
实际上可能意味着用空格填充,如果没有最小字段宽度,这是毫无意义的。@johanneskun谢谢。我修改了答案,以考虑到实际需要数字格式的可能性。@DonalFellows您是对的。感谢您指出这一点。最好使用
foo
或其他字符串表示
%s
。这个数字无关紧要。我认为
0
实际上可能意味着用空格填充,如果没有最小字段宽度,这是毫无意义的。@johanneskun谢谢。我修改了答案,以考虑到实际需要数字格式的可能性。@DonalFellows您是对的。谢谢你指出这一点。