窗体上放四个label值分别是:
label1.caption=161.1
label2.caption=3.8
label3.caption=0
label4.caption=157.3问题是:
? val(label1.caption)=val(label2.caption)+val(label3.caption)+val(label4.caption)
返回 False? ccur(label1.caption)=ccur(label2.caption)+ccur(label3.caption)+ccur(label4.caption)
返回 True

解决方案 »

  1.   

    CCur 函数示例
    本示例使用 CCur 函数将表达式转成 Currency。
    Dim MyDouble, MyCurr
    MyDouble = 543.214588   ' MyDouble 为 Double 类型。
    MyCurr = CCur(MyDouble * 2)   ' 将 MyDouble * 2 的结果
       ' (1086.429176)转换为 Currency (1086.4292)。Val 函数
    返回包含于字符串内的数字,字符串中是一个适当类型的数值。Val 函数示例
    本示例使用 Val 函数返回字符串中所含的数值。Dim MyValue
    MyValue = Val("2457")   ' 返回 2457。
    MyValue = Val(" 2 45 7")   ' 返回 2457。
    MyValue = Val("24 and 57")   ' 返回 24。
      

  2.   

    应该是vb里面的数据自动转型问题,第一个结果为false的原因可能是前后数据有空格的出现,利用trim函数或者是对后面的数据再用一下val函数,就会true了,本身运算上没有任何问题
      

  3.   

    由于ccur函数会返回为currency变量,本身的格式不会变化,因此不会出错,问题就出在这里
      

  4.   

    与val无关,这是处理器处理小数运算时产生的问题。测试:
    Print 161.1 = 3.8 + 0 + 157.3
      

  5.   

    val()转换为数值型
    ccur()转换为货币型