VB里面检查一个数是否为整数的函数是什么?

解决方案 »

  1.   

    设此数为X,那么:Int(X)=X
    就是整数了~~不知道对不对,如果有错的话请各位高手指正,小弟才刚开始学VB~~:)
      

  2.   

    if int(aa)=aa then
        msgbox "是整数"
    else
        msgbox "不是整数"
    end if
      

  3.   

    If IsNumeric(aa) Then
       If Int(aa) = aa Then
          msgbox "Yes"
       else
          msgbox "No"
       end if
    Else
      msgbox "NO"    
    end if
      

  4.   

    呵呵.看来大家对这个函数都不了解..
    vb有这样的函数..
    VarType () as VbVarType
    返回 2 = VbInteger 整型
         3 = VbLong
         4 = VbSingle
         5 = VbDouble  
      

  5.   

    bu_wen(不文):那只是返回数据类型,如果数据来自textbox的话,返回的都是字符串类型,即string,即使输入的是 5 , 10 , -6 等等,2003-06-06,也返回8,即vbstring值。
    如果转换后再判断,把还有意义么?呵呵
      

  6.   

    如果是textbox的返回值的话,你可以试试in(text1.text,".")是否等于0
      

  7.   

    If IsNumeric(aa) Then
       If Int(aa) = aa Then
          msgbox "Yes"
       else
          msgbox "No"
       end if
    Else
      msgbox "NO"    
    end if
      

  8.   

    朋友,你解决了没有? Sophie719(Sophie)的回答你满意吗?一般来讲这种方法是可行的,而且用的也比较多; bu_wen(不文) 的方法在很多书里面都有讲到,但用的不多,因为很多人都记不住,也许是懒得去记吧!你也可以用用下面这种方法:
      If IsNumeric(aa) Then
       If aa\3*3=aa Then
          msgbox "Yes"
       else
          msgbox "No"
       end if
    Else
      msgbox "NO"    
    end if
      

  9.   

    to:Sophie719(Sophie)这样肯定不好用。Int函数是返回整数的函数,当把aa定为double类型时,返回为Yes。
      

  10.   

    To:lvboliang(一把剑)
    你自己没试试吗?不好用的。
      

  11.   

    一个比较罗嗦的方法,但比较可靠,分几步:
    1. 判断是否为数值型数据  isnumeric(aa)
    2. 是的话,用Leftie(左手)的方法: int(aa)=aa 
       判断其值是否相当于整数值
    3. 第2步通过的话,判断其转换为string型后是否包含小数点字符
    4. 全部过关,该是整数了吧?!
    5. 提个思路而已,别打我哦.................我闪
      

  12.   

    呵呵.既然大家把所有能想到的方法都说出来了..
    那楼主,要判断还不容易吗???
    还有就是楼主所说的是否为整数还是是否为整型?
    楼主只是说了 如何判断一个数为何类型.. 并不知道他的数据是什么形式.
    如果是 数值类型的变量,那么只能用 vartype()来获取类型
    int x as variant
    x = '某个数值返回值 
    返回5 整形  返回5.0 浮点型   5.0 转换成字符串 还是5 不是5.0
    如果 x 返回字符串.再判断是否包含小数.这样才正确.
      

  13.   

    dim sglTmp as singleIf IsNumeric(aa)=false Then goto err
    sglTmp =csng(aa)
    if int(sglTmp)=sglTmp then   
      

  14.   

    if not isnumeric(aa) and aa<>"" and len(cstr(cint(aa)))<>len(aa) then
     msgbox("yes")
    else
     msgbox("no")
    end if
      

  15.   

    '3 is variable
    Private Sub Form_Load()
    If TypeName(3) = "Integer" Then
        Debug.Print "Integer"
    End If
    End Sub