【发布时间】:2017-04-11 14:51:04
【问题描述】:
嗨,我在 tcl 中有一个 string 变量,它存储了一些 integer 值。我需要从 string 变量中获取最左边的数字并将其递增 1。基本上下面是我为完成任务而编写的代码:
set maxID 123456;
if {$maxID < 1000000} {
set maxID 1000000;
} elseif {$maxID >= 1000000} {
set maxID [expr [string index $maxID 0] + 1]000000; #Need to Simplify this
}
return $maxID;
现在我要做的是,如果 maxID 大于或等于 100 万,请将 maxID 设置为下一个百万值。所以在上面的例子中,因为maxID 是123456,所以返回maxID 值应该是1000000,因为123456 的下一个百万值是1000000。
为此,我得到最左边的数字 1,然后将其增加 1 并连接六个零,这将增加值。我正在使用 tcl 8.5.x,所以我仍然没有可用的 [string cat $args $args...] 命令。
无论如何,我想知道是否有更简单的方法可以做到这一点。
【问题讨论】:
-
根据您发布的代码,
maxID的结果值将是1123456,而不是2000000。 -
谢谢,没有意识到最大值小于一百万。
-
所以你基本上想将
maxID舍入到最接近的一百万倍数,对吧? -
是的,没错。
标签: string tcl increment string-concatenation