Dim MyNumber, Var1, Var2 As Integer
Var1 = "7": Var2 = 6   
MyNumber = (Var1 > Var2)
最终MyNumber为true,为什么?是将字符转换为整型还是将整型转化为字符串再比较

解决方案 »

  1.   

    Dim MyNumber, Var1, Var2 As Integer
    Var1 = "7": Var2 = 6   
    MyNumber = (val(Var1) > Var2)
      

  2.   

    Dim MyNumber, Var1, Var2
    Var1 = "7": Var2 = 6   
    MyNumber = (val(Var1) > Var2)
    结果又如何呢
      

  3.   

    错了,应该是
    Dim MyNumber, Var1, Var2 
    Var1 = "7": Var2 = 6   
    MyNumber = (Var1 > Var2)
    结果又如何
      

  4.   

    当然是true.楼主定义变量的时候最好定议成指定的数据类型.如Dim MyNumber As Boolean, Var1 As String, Var2 As Integer
      

  5.   

    也就是说一个字符型数和整型数进行运算的时候,系统会自动转换成整型之间的运算,对么,比如:“45”+4=49
    “45”>4为true,
    不同数据类型的数据进行运算,结果的类型不是为两个运算对象中存储长度较长的那个对象的类型对么?比如一个整型和一个长整型进行运算,结果就是长整型。整型和单精,结果为单精,那为什么整型和字符型,结果就为整型了呢?
      

  6.   

    同意楼上的观点,楼主最好是按规定定义变量。
    此外,结果一定为true,因为比较时,vb会自动转换数据格式。
    如果:var1="5",var2=6
    结果一定为false
    如果:var1="z",var2=6
    将会报错!
    因此比较时,一定要采用tztz520(午夜逛街)的方法。