8

经典asp失败中的IsNumeric函数有一个非常奇怪的问题。我的代码中发生了这样的事情:

Response.write Score                // 79.617
Response.write IsNumeric(Score)     // false
Response.write IsNumeric("79.617")  // true

有没有人知道为什么会发生这种情况?

在规范中,据说这些函数适用于可以转换为数字的字符串,从上面的示例中您可以看到我得到“真实”的结果。但是什么会导致我的问题?

4

1 回答 1

11

这意味着Score根本不是字符串,而是其他东西,很可能来自数据库。

为了安全起见,请使用您自己的函数:

Function My_IsNumeric(value)
    My_IsNumeric = False
    If IsNull(value) Then Exit Function
    My_IsNumeric = IsNumeric(CStr(value))
End Function

Response.write My_IsNumeric(Score)

CStr()确保将除 Null 之外的任何内容转换为字符串,并处理来自数据库的 Null,您拥有该IsNull()功能。

于 2012-08-20T14:29:09.770 回答