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

一个符号+的问题

zhanxinlin 发布于 2010-10-09 01:15, 391 次点击
我做了一个如下的,运行后4个表单全部输入1.。。。提交后...

<form action="" method="get" name="1" id="1">
  <input name="packing_z" type="text" id="packing_z">
  <input name="packing_m" type="text" id="packing_m">
  <input name="packing_q" type="text" id="packing_q">
  <input name="packing_t" type="text" id="packing_t">
  <input type="submit" name="Submit" value="提交">
</form>

<%
packing_z=request.QueryString("packing_z")
packing_m=request.QueryString("packing_m")
packing_q=request.QueryString("packing_q")
packing_t=request.QueryString("packing_t")
packing_count=packing_z*1 + packing_m*1 + packing_q*1 + packing_t*1     '把每个变量都加上*1,输出结果就是想要的 4
packing_count=packing_z + packing_m + packing_q + packing_t             '把*1不要,输出却好像每个变量都成了文本连起来一般,输出为 1111
%>
<%=packing_count%>

这是怎么会的?想不明白。    我又做了试验,写了一条。。。


<%
a=request.QueryString("a")
b=request.QueryString("b")
c=a+b*a
response.Write(c)
%>

在地址后面加上  ?a=2&b=3    运行结果是对的。   如果把c=a+b*a改成c=a+b结果又成了23了。。。。这个我还没搞明白,我想就是数据类型吧,还请大虾们指点一下。
6 回复
#2
hams2010-10-09 08:39
变量类型不一样,系统把他当作字符型了,表单过来的值很容易出现这种情况。

进行乘法运算之后系统就自动把他转成数字类型了。
#3
zhanxinlin2010-10-11 21:52
嗯,这个我还可以理解,可是表单过来后的数据乘法后就会就成  类似于 0.7*1  输出的结果就变成了  .7   。这让我很郁闷,我想要的输出还是正常的0.7,该怎么写才对。难不成我得在前面加上这段
<%
if a<1 then
response.write("0")
end if
%>
#4
hams2010-10-12 08:27
对数值格式进行定义
response.Write FormatNumber(c,,-1)
#5
zhanxinlin2010-10-13 17:20
<%
a=request.QueryString("a")
b=request.QueryString("b")
c=a+b+a
response.Write  FormatNumber(c,,-1)
%>
地址:localhost/test.asp?a=2&b=3    结果是232.00  。
虽然还是不行,但至少还是增长了一个FormatNumber,所以把分给你了
#6
hams2010-10-14 08:41
能不能别把前面学的东西丢了再学后面的?
#7
hams2010-10-14 08:44
<%
a=CCur(request.QueryString("a"))
b=CCur(request.QueryString("b"))
c=a+b+a
response.Write  FormatNumber(c,,-1)
%>
1