编程论坛
注册
登录
编程论坛
→
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
cnfarer
2010-04-27 13:33
肯定是哪个地方错了,否则不会的!
#3
zfc123
2010-04-27 14:52
但是我把if aa>bb then改成if cint(aa)>cint(bb)就可以正常运行,aa,bb都是提交自表单,难道是他们的数据类型不一样.
#4
zzy_420
2010-04-27 15:53
aa,bb来自表单(传参时肯定没有做类型转换) 那他们的类型应该是 字符串型 ,当你比较时 是两个字符串的比较 ,字符串比较是比较ASCII码,所以当同为小于10的时候能够比较,因为此时ASCII码大小和数值大小一样,而改变后是按字符串比较,因此会出现错误比较结果。
当你用转换函数转换后 CINT aa,bb都转换成了 数值型 ,比较当然不会有问题了。
如果传参之前就转换一下数据类型,再像上面比较时就不会出问题了。
希望楼主能够理解传参时的数据类型以及接收参数时 转换类型的需要。
[
本帖最后由 zzy_420 于 2010-4-27 15:55 编辑
]
#5
hams
2010-04-27 16:13
同意楼上的正解
或者你用
if aa-bb>0 then
else
end if
经过运算后,ASP会自己调整类型
#6
gupiao175
2010-04-27 19:57
JAVASCRIPT也会有这种问题,也需要注意数据类型转换,否则经常会错误比较!
单存比较2个数大小,还好些,如果遇到一个数组排序什么的,那就更需要注意了!
1