代码之家  ›  专栏  ›  技术社区  ›  Thurein

VB6中的IsDouble()?

vb6
  •  3
  • Thurein  · 技术社区  · 17 年前

    VB6中是否有IsDouble()函数?如果我没有弄错的话,VB6中的双数据类型相当于SQLServer2000中的浮点。 如蒙指教,不胜感激。

    5 回复  |  直到 17 年前
        1
  •  10
  •   Anirudh Ramanathan    13 年前

    Private Function IsDouble(ByVal value As Variant) As Boolean
        IsDouble = (VarType(value) = vbDouble)
    End Function
    
        2
  •  6
  •   TAbdiukov miltonb    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
    
        3
  •  3
  •   MarkJ    17 年前

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

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

    Debug.Print IsNumeric("4e308") 
    False
    

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

    docs . “具有以下有效值的浮点数字数据:-1.79E+308至-2.23E-308、0和2.23E+308至1.79E+308。”

        4
  •  1
  •   Sachin Pachkude    10 年前

    没有内在的 双倍 函数在VB6中可用,您可以使用内置 作用否则,您可以使用以下用户定义的函数来实现相同的功能:

    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
    
        5
  •  0
  •   Joel Coehoorn    17 年前

    IsNumeric() 应该足够好用的函数。如果这不足以满足您的需求,您能用什么方式解释?