m = "6"
n = 6
Print m = n上面的语句打印的结果是Falsem = "6"
n% = 6
Print m = n上面的语句打印的结果是True为什么开始的情况m,n不相等呢?难道不能自动强制转换吗?

解决方案 »

  1.   

    我试了好几台机器 都是一个 false 一个true
      

  2.   

    m是字符类型,n是数值类型,类型不匹配,当然是False。
    可以用类型转换函数进行转换。
    函数名称   返回类型    
    CBool      Boolean       
    CByte      Byte        
    CChar      Char          
    CDate      Date         
    CDbl       Double      
    CDec       Decimal    
    CLng       Long  
    CObj       Object  
    CShort     Short  
    CSng       Single 
    CStr       String 
      

  3.   

    Dim m As String
    Dim n As Integer
    Private Sub Command1_Click()
    m = "6"
    n = 6
    Print m = nm = "6"
    n% = 6
    Print m = n
    End Sub
    环境:VB6 eng +SP6
    结果
    true
    true
      

  4.   

    Dim m As String
    Dim n As Integer
    我没有显示声明,不然怎么会不清楚啊!
      

  5.   

    m = "6"
    n = 6
    Print m = n
    m n都是Variant,但一个是字符串,一个是数字,当然不相等m = "6"
    n% = 6'%是integer
    Print m = n
    n类型明确,m会强制装换为integer 6,所以相等
      

  6.   

    为什么Variant就不能强制转换呢?
      

  7.   

    [form MSDN]=
    比较运算符,用来比较表达式一个表达式是数值数据类型而另一个是数字 Variant、或可以为一数字
    进行数值比较都是 Variant 表达式
    一个 Variant 表达式是数值而另一个是字符串 数值表达式小于字符串表达式。
      

  8.   

    前面一个m,n没有强制类型转换啊viena(维也纳nn-实心木头人) :
    是否认识zhonghuilian (嫁給电脑) ?
      

  9.   

    他说,viena(维也纳nn-实心木头人)是老师? 想认识一下