如何用零填充数字到 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
我需要填充一个特定长度的数字(例如 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