下午,
我试着写一个小小的竞标剧本。但我在使用formatNumber函数时遇到了麻烦。
currentBid = 50.51 'from database dataType double(16,2)
yourBid = isNumeric(Request("bid"))
If FormatNumber(yourBid,2) > FormatNumber(currentBid,2) Then
Response.Write"bid successful... woop woop"
else
Response.Write"you cant bid below the current asking price"
end if
但如果我要出价1000则写道“你不能低于目前的要价”
请告知
问候
沙恩
'Changed as advised
currentBid = 50.51 'value from database
If IsNumeric(Request.Form("bid")) Then
yourBid = CDbl(Request.Form("bid"))
end if
答案 0 :(得分:1)
该行
yourBid = isNumeric(Request("bid"))
不将有效数字存储到yourBid
,但IsNumeric()函数的(booelan)结果应用于Request("bid")
。
将行更改为
yourBid = CDbl(Request("bid"))
并查看您的IF语句是否按预期工作。然后为Request("bid")
添加适当的验证。
答案 1 :(得分:1)
这里有两个问题:
正如Ekkehard所说,IsNumeric()
返回一个布尔值。要测试值是否为数字然后存储到变量,请使用:
If IsNumeric(Request("bid")) Then yourBid = CDbl(Request("bid"))
FormatNumber()
返回数字的字符串表示。所以你要将一个字符串与另一个字符串进行比较,而不是将一个数字与另如果您需要将数字四舍五入为小数,请使用Round()
函数:
If Round(yourBid,2) > Round(currentBid,2) Then
修改:证明。
MsgBox VarType(4) ' 2 = vbInteger
MsgBox VarType(FormatNumber(4)) ' 8 = vbString