这个小小的问题,埋藏了3个月之久,脚本运行过程出现的种种奇怪现象的祸根竟然是一个如此小的误会。作者: ellven 时间: 2008-9-23 17:35
"21"是string型作者: rcpp 时间: 2008-9-23 17:40
所以说,安检还是很重要滴
if isnumeric(...) then
...
end if作者: hsjzfling 时间: 2008-9-23 19:01
原帖由 rcpp 于 2008-9-23 17:40 发表
所以说,安检还是很重要滴
if isnumeric(...) then
...
end if
这种情况下用isnumeric没啥用处。。。VBS会很智能的在这里做类型转换的
If isnumeric("21") Then
msgbox "is numeric"
else
msgbox "is not numeric"
End If
你觉得结果应该是啥呢~~
此外,VBS还会把Currency类型的值也认为是numeric,比如(在默认的美式Currency系统中)
If isnumeric("21,100") Then
msgbox "is numeric"
else
msgbox "is not numeric"
End If
执行下看看结果咯~作者: rcpp 时间: 2008-9-24 09:41
oh god,看来我对vbs的了解还是不够多啊
vbs能够强制类型转换吧?转换了再判断吧
还好以后不必陪测试人员写脚本了,不然写错了vbs还要被抱怨~作者: heqingbluesky 时间: 2008-9-24 15:28
因为VBS把所有默认的变量类型都是Variable,不是我们常说的Integer,String,Double……,所以当你要比较的不同类型的变量时候,一定要保证变量的类型一直。下面的结果就是正确的:
Dim q