VB6中的IsDouble()?

VB6中的IsDouble()?,vb6,Vb6,VB6中是否有IsDouble()函数?如果我没有弄错的话,VB6中的双数据类型相当于SQLServer2000中的浮点。 非常感谢您的建议。有一个IsNumeric()函数应该可以很好地工作。如果这不足以满足您的需要,您还可以用什么方式解释吗?IsNumeric()可以,它只接受适合双精度的值。它具有区域意识,即对于法语区域设置,小数点分隔符是逗号 Function IsDouble(ByVal varValue As Variant) As Boolean Dim dblTest As

VB6中是否有IsDouble()函数?如果我没有弄错的话,VB6中的双数据类型相当于SQLServer2000中的浮点。 非常感谢您的建议。

有一个
IsNumeric()
函数应该可以很好地工作。如果这不足以满足您的需要,您还可以用什么方式解释吗?

IsNumeric()可以,它只接受适合双精度的值。它具有区域意识,即对于法语区域设置,小数点分隔符是逗号

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
我刚刚在即时窗口中尝试了这个

Debug.Print IsNumeric("4e308") 
False
本手册中VB6 Double的定义是“VB6 Double变量存储为IEEE 64位(8字节)浮点数,负值范围为-1.79769313486232E308至-4.94065645841247E-324,正值范围为4.94065645841247E-324至1.79769313486232E308”


我认为这与SQL Server浮动相同,是通过在线进行的。“具有以下有效值的浮点数字数据:-1.79E+308到-2.23E-308,0和2.23E+308到1.79E+308。”

实际上,使用Vartype函数更好

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

VB6中没有内置的ISDuble函数,您可以使用内置的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

让我透露一下背景,我需要检查一个来自文本文件的字符串值,以便插入数据库表(SQLServer2000)的字段(SQLFloat数据类型)。好的。IsNumeric唯一的问题是它会允许溢出:一个太大而不能放入浮点类型的数字。这是不正确的,它只接受适合双精度浮点类型的值。(IEEE标准8字节浮点数)MarkJ。。。您的意思是,满足IsNumeric()的值不会总是溢出SQL 2K浮点数据类型吗?我这样说对吗?我想是的-我对SQL server不太熟悉。“VB6双变量存储为IEEE 64位(8字节)浮点数,负值范围为-1.79769313486232E308至-4.94065645841247E-324,正值范围为4.94065645841247E-324至1.79769313486232E308”,感谢您的代码。让我透露一下背景,我需要检查一个来自文本文件的字符串值,以便插入到数据库表(SQL Server 2000)的字段(SQL浮点数据类型)中。不过,请注意CDbl将接受什么作为输入。我想它接受尾随的无意义字符。不过,我想到的是Val函数。但是如果你有国际用户,你可能也会想用这些用户来测试一下。我认为CDBl使用区域设置来进行转换。我不认为VB可以处理这样的布尔表达式。如果你真的想,你可以在它周围加上括号或调用CBool函数。但上述方法是有效的。