如何在 TCL 中格式化数字字符串

How to format a number string in TCL

您好,我有一个数字字符串,输出为 4 位数字,即。 2850 我想让这个数字显示为 2.8。我尝试了各种 %.1f 等这是我目前所拥有的

set number 2850
puts [format "%01.1f" $number]

输出错误为 2.0 能否请您指出正确的方向。

感谢 Schelte Bron 的回复,能否将格式和表达式合并到一行代码中?

set number 2850
set number1 [expr {double($number) / 1000}]
set number2 [format "%01.1f" $number1]
puts "$number2

所以我们会得到类似

的东西
set number 2850
set number1 [expr {double($size) / 1000} -format "%01.1f $number]
puts $number1

提前致谢

您可以在一行代码中完成,但 formatexpr 的职责保持不变:

set number2 [format "%01.1f" [expr {$number / 1000.0}]]

假设您的意思是将 2850 除以 1000,则不清楚您是真的要四舍五入为 2.9,还是要四舍五入为 2.8。使用 format 会将其四舍五入为 2.9,例如

set number [expr {2850 / 1000.0}]
puts [format "%.1f" $number]

使用 floor 会将其四舍五入为 2.8,例如

set number [expr {2850 / 100.0}]
puts [expr {floor($number) /10.0} ]