注册 登录
编程论坛 ASP技术论坛

asp 数据类型问题

zfc123 发布于 2010-04-27 12:42, 728 次点击
dim aa,bb
if aa>bb then
else
end if

为什么当aa和bb同为10以内数字0-9,或者同为10以上数字时可以正常比较,但aa为10以内数字,bb为10以上的数字时,就无法比较.高手来指点一下吧,谢谢.
5 回复
#2
cnfarer2010-04-27 13:33
肯定是哪个地方错了,否则不会的!
#3
zfc1232010-04-27 14:52
但是我把if aa>bb then改成if cint(aa)>cint(bb)就可以正常运行,aa,bb都是提交自表单,难道是他们的数据类型不一样.
#4
zzy_4202010-04-27 15:53
aa,bb来自表单(传参时肯定没有做类型转换) 那他们的类型应该是 字符串型 ,当你比较时 是两个字符串的比较 ,字符串比较是比较ASCII码,所以当同为小于10的时候能够比较,因为此时ASCII码大小和数值大小一样,而改变后是按字符串比较,因此会出现错误比较结果。
当你用转换函数转换后 CINT aa,bb都转换成了 数值型 ,比较当然不会有问题了。

如果传参之前就转换一下数据类型,再像上面比较时就不会出问题了。

希望楼主能够理解传参时的数据类型以及接收参数时 转换类型的需要。

[ 本帖最后由 zzy_420 于 2010-4-27 15:55 编辑 ]
#5
hams2010-04-27 16:13
同意楼上的正解

或者你用
if aa-bb>0 then

else

end if

经过运算后,ASP会自己调整类型
#6
gupiao1752010-04-27 19:57
JAVASCRIPT也会有这种问题,也需要注意数据类型转换,否则经常会错误比较!
单存比较2个数大小,还好些,如果遇到一个数组排序什么的,那就更需要注意了!
1