IsNumeric возвращает неожиданное значение true / false - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть переменная, которая может быть строкой или числом.Поэтому я проверяю, является ли это число с IsNumeric(var).Но когда var = 2 IsNumeric возвращает false?Я могу поставить var в Round(), и утверждение вернет true.Но если var - строка, код выдаст ошибку: Несоответствие типов.

Как установить var:

strSQL = "SELECT id,name, number FROM Person "
Set rs = myConn.Execute(strSQL)
If IsNull(var) Then
    var = Session("LoginID")
End If

IsNumeric(var) ← возвращает false, когда var = 2.

IsNumeric(Round(var)) ← возвращает true, когда var = 2, и выдает ошибку, когда var - строка.

1 Ответ

0 голосов
/ 19 сентября 2019

Непонятно, где задается переменная var, поэтому сложно сделать то же предположение, что и вы.

Ниже приведен скрипт быстрого теста, показывающий некоторые возможные результаты из IsNumeric().

Option Explicit

Dim value
Dim values: values = Array(2, "2", "2 ", "", Nothing, Null)
For Each value In values
  Call Response.Write("IsNumeric = " & IsNumeric(value))
Next

Выход:

IsNumeric = True
IsNumeric = True
IsNumeric = True
IsNumeric = False
IsNumeric = False
IsNumeric = False
...