IsDouble () в VB6? - PullRequest
       52

IsDouble () в VB6?

3 голосов
/ 08 апреля 2009

Есть ли в VB6 функция IsDouble ()? Если я не ошибаюсь, тип данных Double в VB6 эквивалентен плавающему в SQL Server 2000. Ваш совет будет высоко ценится.

Ответы [ 5 ]

10 голосов
/ 17 апреля 2009

На самом деле вам гораздо лучше использовать функцию Vartype.

Private Function IsDouble(ByVal value As Variant) As Boolean
    IsDouble = (VarType(value) = vbDouble)
End Function
6 голосов
/ 08 апреля 2009
Function IsDouble(ByVal varValue As Variant) As Boolean

   Dim dblTest As Double

   On Error Resume Next

   dblTest = CDbl(varValue)

   IsDouble = Err.Number = 0

End Function
3 голосов
/ 08 апреля 2009

IsNumeric () в порядке, он будет принимать только те значения, которые соответствуют Double. Он осведомлен на региональном уровне, то есть для французских региональных настроек десятичный разделитель является запятой.

Я только что попробовал это в Немедленном окне.

Debug.Print IsNumeric("4e308") 
False

Определение VB6 Double в руководстве: «Переменные VB6 Double хранятся в виде 64-разрядных (8-байтовых) чисел с плавающей точкой IEEE в диапазоне значений от -1,79769313486232E308 до -4,94065645841247E-324 для отрицательных значений и от 4.94065645841247E-324 до 1.79769313486232E308 для положительных значений ".

Я думаю, что это то же самое, что и SQL Server с плавающей точкой, если смотреть онлайн docs . «Данные чисел с плавающей точностью со следующими действительными значениями: от -1,79E + 308 до -2,23E - 308, 0 и 2,23E + 308 до 1,79E + 308."

1 голос
/ 24 июня 2016

Нет встроенной функции IsDouble , доступной в VB6, вместо этого вы можете использовать встроенную функцию IsNumeric . В противном случае вы можете использовать следующую определяемую пользователем функцию для достижения того же:

Function IsDouble(ByVal value As Variant) As Boolean

   Dim convertedValue As Double

On Error Goto EH
   convertedValue = CDbl(value)
   IsDouble = True

Exit Function
   EH:
        IsDouble = False
End Function
0 голосов
/ 08 апреля 2009

Есть функция IsNumeric(), которая должна работать достаточно хорошо. Если это не соответствует вашим потребностям, вы также можете объяснить, каким образом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...