asp经典FormatNumber出价脚本

时间:2014-04-16 14:08:38

标签: vbscript asp-classic

下午,

我试着写一个小小的竞标剧本。但我在使用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

2 个答案:

答案 0 :(得分:1)

该行

yourBid = isNumeric(Request("bid"))

将有效数字存储到yourBid,但IsNumeric()函数的(booelan)结果应用于Request("bid")

将行更改为

yourBid = CDbl(Request("bid"))

并查看您的IF语句是否按预期工作。然后为Request("bid")添加适当的验证。

答案 1 :(得分:1)

这里有两个问题:

  1. 正如Ekkehard所说,IsNumeric()返回一个布尔值。要测试值是否为数字然后存储到变量,请使用:

    If IsNumeric(Request("bid")) Then yourBid = CDbl(Request("bid"))
    
  2. FormatNumber()返回数字的字符串表示。所以你要将一个字符串与另一个字符串进行比较,而不是将一个数字与另如果您需要将数字四舍五入为小数,请使用Round()函数:

    If Round(yourBid,2) > Round(currentBid,2) Then
    
  3. 修改:证明。

    MsgBox VarType(4)                ' 2 = vbInteger
    MsgBox VarType(FormatNumber(4))  ' 8 = vbString