VB6中的IsDouble()?

时间:2009-04-08 16:19:29

标签: vb6

VB6中是否有任何IsDouble()函数?如果我没弄错的话,VB6中的Double数据类型相当于SQL Server 2000中的float。 非常感谢您的建议。

5 个答案:

答案 0 :(得分:10)

实际上,使用Vartype功能会好得多。

Private Function IsDouble(ByVal value As Variant) As Boolean
    IsDouble = (VarType(value) = vbDouble)
End Function

答案 1 :(得分:6)

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

答案 2 :(得分:3)

IsNumeric()很好,它只接受适合双打的值。它具有区域意识,即对于法语区域设置,小数点分隔符为逗号。

我刚刚在立即窗口中尝试了这个。

Debug.Print IsNumeric("4e308") 
False

手册中VB6 Double的定义是“VB6双变量存储为IEEE 64位(8字节)浮点数,范围从-1.79769313486232E308到-4.94065645841247E-324为负值,从4.94065645841247E-324到1.79769313486232E308为正值“。

我认为这与在线docs的SQL Server浮动相同。 “使用以下有效值浮动精度数字数据:-1.79E + 308到-2.23E - 308,0和2.23E + 308到1.79E + 308。”

答案 3 :(得分:1)

VB6中没有内置的 IsDouble 功能,您可以使用内置的 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

答案 4 :(得分:0)

有一个IsNumeric()函数应该可以运行得很好。如果这不足以满足您的需求,您还能以何种方式解释?