asp if cint 问题求解

来源:百度知道 编辑:UC知道 时间:2024/05/09 18:00:16
一个运费计算问题,
代码如下

<%
if (request.Form("zl") >cint(request.Form("zl")))then
Response.write(Cstr(formatcurrency(cint(request.Form("zl")+1)*rst("pb"))))
else
Response.write(Cstr(formatcurrency(request.Form("zl")*rst("pb"))))
response.Write("元")
end if
%>

但是老不能 if 判断 只能运行

Response.write(Cstr(formatcurrency(cint(request.Form("zl")+1)*rst("pb"))))

求解
做这个目的就是在于达到向上取整的目的,
if (Cint(request.Form("zl")) >cint(request.Form("zl"))) then
不能达到这个效果啊!
要达到的效果是
如果重量不为整数,如为1.2KG,得到的计算重量要是2KG
如果重量为整数,计算重量为输入重量
所以我肯定只能同一个数比较了啊!!!

哪位高人可以教一种asp 实现向上取整的方法吗?

我一共就25分,倾囊而出,只是希望大家能帮帮忙啊!!!!

对下面回答的看法:
cint是四舍五入
ZL,重量,输入值为小数,
如果cint(zl)=zl,则判断为是整数重量输入
如果cint(zl)>zl,则判断为是 五入 则计算重量即为 cint(zl)
如果cint(zl)<zl,则判断为是 四舍 则

a=12.234

a1=int(a+0.9999)

比同一个数得到的结果肯定是相等的,所以需要用另一个变量来一下

假如你取得的重量是ZL
zl = request.Form("zl") ' 这个是实际的重
intZl = Int(zl) '这个是原重量的整数部份(如果ZL是一个整数,那么取得的整数部分的值就是它本身;如果ZL有小数部份,那么取整后因为抛弃小数部分了所以就小于它本身)

if zl > intZL then zl=zl+1 '如果zl>intZL则说明zl有小数部份,不是一个整数,则需要+1.(因为intZL是被取整的,如果zl是整数的话就应该和取整后的它自身相等,即zl = intZL则ZL为整)

不知道你明白了没

______________

仔细看了一下,你的程序不是语法问题,是逻辑问题,
if (request.Form("zl") >cint(request.Form("zl")))then
你用 (request.Form("zl") 跟 (request.Form("zl") 作比较,得到的结果肯定是相等的啊,所以无论如何程序只会执行ELSE后面的内容

向上取整:
num=1.3
num1=int(num)
if num>num1 then num1=num1+1

--以上是补充回答--
if (request.Form("zl") >cint(request.Form("zl")))then
试试把这一行作比较的两个表达式都用Cint转换成INT类型的试试:
if (Cint(request.Form("zl")) >cint(request.Form("zl"))) then

if (reques