ASP中数字比较问题

ASP程序中,比较两个数字的大小,代码如下:
<%
Dim a,b
a=2.07
b=FormatNumber("1.897",3)

If b>a Then
response.write "b比a大"
End If
%>
按道理是b比a小,可结果却显示b比a大

把代码If b>a Then 换成If b>2.07 Then 就没有问题,不知道为什么

换成If b-a>0 Then也可以,但就是b>a不行?
如果把a也做一下FormatNumber函数处理以后If b>a Then是可以的,FormatNumber的作用是转换数字,那么a=2.07难道不是数字吗?

<%
Dim a,b
a=CDbl(2.07)
b=CDbl("1.897")

If b>a Then
response.write "b比a大"
else
response.write "a比b大"
End If
%>

数据类型不一样。
按楼主
a为双精度浮点数
b为字符串

你只有把他们转换为相同数据类型才行

FormatNumber("1.897",3) 的结果仍然是字符串
FormatNumber的返回结果是字符串,只不过是一个格式化之后像数字一样的字符串。
要比较最好转成一样的数字类型进行比较,再格式化输出。

而直接的a=2.07则自动为双精度型
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-01-22
这个 在有些编程中 它们采用的是4舍6入 5凑偶 我想这个也是吧
其实我不清楚ASP 本人很少看这个

你要你能知道答案了 可以告诉我吗?
[email protected]
这是我的邮箱
第2个回答  2007-01-22
你的意思是a=2.07 和a=FormatNumber(2.07,3)的数据类型不一样吗,都是数字啊,那为什么If b-a>0 Then是可行的?
相似回答