VB6中是否有任何IsDouble()函数?如果我没弄错的话,VB6中的Double数据类型相当于SQL Server 2000中的float。 非常感谢您的建议。
答案 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()
函数应该可以运行得很好。如果这不足以满足您的需求,您还能以何种方式解释?