使用IF语句比较从MySQL拉取的数字

2022-02-24 00:00:00 if-statement asp-classic mysql vbscript

从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"))

请注意,该函数需要小数点,因为它是在系统的区域设置中配置的。

相关文章