a>=60这里string和integer 比较时编译器自动进行了隐式转换,把string转换成integer和60进行比较
这样做主要是为了让代码更简洁不过缺点是当a不能被隐式转换成数字时就会出错,增加了调试难度,所以最好CInt来把a显式转换成数字,有错也可以作为异常处理
一般知道这样的错误是不会这样写上去的。
可以使用Val函数将数字字符串换成数值。该函数会从左向右检索字符串,到i最后一个不是数字的字符,将其转化为数值。
例子:
val("5")=5
val("1abc2")=1
val("abc123")=0
原代码可修改为:
-------------------
dim a as string
a = text1.text '输入成绩
if val(a)>60 then
print "及格"
end if
-----------------
用VAL函数将字符转成数字后进行比较
a = val(text1.text)
val(x):将数字字符串x转换为数值
字符串不能和数字比较!