如何用零填充数字到 tcl 中的特定长度?

How to pad a number with zeros to a specific length in tcl?

我需要填充一个特定长度的数字(例如 8),其中输入数字可以是任意长度。

例子:如果输入的数字是123456,我想把它补成12345600

如果我知道所有输入的数字都是相同的长度(比如 6),我会做类似

的事情
[format "$input_num%02d" 0]

但是由于输入的数字可以有不同的长度,我该如何实现呢? 显然下面没有工作:

set cur_length [expr[llength[split $input_num ""]]
set padding [expr 8 - $cur_length]
set padded_num [format "$input_num%${padding}d" 0]

感谢任何帮助。

谢谢。

其实很简单,其实:

format %-08s $input_num

数字也是字符串,所以可以像字符串一样左对齐。

文档:format