我知道所有变量都是字符串类型。
我们如何检查32位操作系统的MAX_INT(0x7FFFFFFF)和MIN_INT(-0x80000000)之间的变量值
set var "12334"
...How to check var variable datatype and value range ..
答案 0 :(得分:3)
string is int
命令完成了大部分工作。其余可以使用tcl::mathop::<=
:
set MIN_INT -0x80000000
set MAX_INT 0x7FFFFFFF
if {[string is int -strict $value] && [tcl::mathop::<= $MIN_INT $value $MAX_INT]} {
puts "$value is a proper 32-bit signed integer"
}
如果愿意,可以使用它(括号只是为了清楚起见):
if {[string is int -strict $value] && ($MIN_INT <= $value) && ($value <= $MAX_INT)} {