使用IF语句比较从MySQL拉取的数字
从MySQL中提取2个十进制值并尝试使用非常简单的IF语句:
if subtotal < minval then DO THIS else DO THIS
它总是认为小计较小,即使可能不是。IsNumeric
确认这两个值都是数值。如果我使用minval=19.99
而不是从数据库拉取,它会起作用。
检索minval
的代码如下所示:
Set rscontrol = db.Execute("select * from websitecontrol ")
minval = FormatNumber(rscontrol("minordervalue"))
解决方案
FormatNumber
是用于格式化要显示的值的函数。它返回格式化字符串。
>>> n = 1.25
>>> WScript.Echo TypeName(n)
Double
>>> WScript.Echo TypeName(FormatNumber(n))
String
切勿使用格式化函数,除非要显示结果。
更改
minval = FormatNumber(rscontrol("minordervalue"))
至
minval = rscontrol("minordervalue")
如果这仍然不起作用,您可以使用CDbl
函数将该值强制为双精度。
minval = CDbl(rscontrol("minordervalue"))
请注意,该函数需要小数点,因为它是在系统的区域设置中配置的。
相关文章