关于ASP数值间比较的问题

XIAOYUANLUOBO 2009-08-04 07:51:10
情况一:
<%
a="2"
c=100
if a>100 then
response.write "OK!"
else
response.write "OFF!"
END IF
%>
输出结果:OFF!

情况二:

<%
a="2"
c=100
if a>c then
response.write "OK!"
else
response.write "OFF!"
END IF
%>
输出结果:OK!

情况三:

<%
a="2"
c=100
if cint(a)>c then
response.write "OK!"
else
response.write "OFF!"
END IF
%>
输出结果:OFF!


问题:
为什么以上三种运行结果会不同呢。。还有cint()这个函数有哪些功能呢。。。
...全文
181 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzx99 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 number123456 的回复:]
如果a 的值是通过传参,request得到的话,就不保证一定会是数字了,
如果为字符的话,你使用INT就会报错,我决得还是在比较之前对这两个变量值去,
比如 a是否为空,是否为数字 ,如果都不是的话就提示
[/Quote]

我的做法是 不判断, 一律加空字符 &""
sumjor 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cpp2017 的回复:]
1.将a转换成int

2.将c转换成string

3.a显式转换成int

[/Quote]
这个解释是对的
in0512 2009-08-05
  • 打赏
  • 举报
回复
要分清字符串和变量的写法

Cint 转换成整形
Cstr 转换成字符串
Clng 转换成常整数
Cbool 转换成布尔函数
Cdate 转换成日期函数
CSng 转换成单精度
CDbl 转换成双精度
anbs01 2009-08-05
  • 打赏
  • 举报
回复
number123456 2009-08-05
  • 打赏
  • 举报
回复
如果a 的值是通过传参,request得到的话,就不保证一定会是数字了,
如果为字符的话,你使用INT就会报错,我决得还是在比较之前对这两个变量值去判断,
比如 a是否为空,是否为数字 ,如果都不是的话就提示
shaomingmark 2009-08-05
  • 打赏
  • 举报
回复
1楼说法正确。另外我补充一点

情况一:a>100 这个时候a根据100的类型,隐式的将a转换为int类型


情况三:将a强制转换为int


cint()强制转换为int类型
toury 2009-08-05
  • 打赏
  • 举报
回复
别那么多情况了,一个就可以:
<%
a="2"
c=100
if a-c>0 then
response.write "OK!"
else
response.write "OFF!"
END IF
%>
yooxee 2009-08-05
  • 打赏
  • 举报
回复
差不多2楼说的那样

比较时,必须是同类型

如果不是同类型,在比较时会转换类型,一般A和B比较,如果是变量和实例,那么变量的那个会转换为实例的类型,如果是变量和变量,那么右边的B会转换为左边的A所对应实例的类型,就这样。。。
sherlock777 2009-08-05
  • 打赏
  • 举报
回复
帮顶
cpp2017 2009-08-04
  • 打赏
  • 举报
回复
1.将a转换成int

2.将c转换成string

3.a显式转换成int

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧