Dim a, b As Double
b = 2.23 * 100
a = Int(b) / 100

解决方案 »

  1.   

    先定义一个中间变量吧
    t=...
    int(t)/100
      

  2.   

    Int(number)
    必要的 number 参数是 Double 或任何有效的数值表达式
      

  3.   

    这些数值是在一个文本档中输入的,这么处理的目的是为了保留两位小数,如果不加中间变量不可以吗?正因为存在这个问题我需要有很多的地方需要重新处理。不但是在VB中,即使在SQLServer7.0中也有类似的问题,当做一个很复杂的视图时要把某个数值除以100,而结果却是应得结果的100倍,但如果是除以100.0结果就对了,真是头疼!
      

  4.   

    不用先定义一个中间变量
    Dim A As Double
    A = Int(CDbl(100 * 2.23)) / 100
      

  5.   

     区别在于int()!!!
    Dim s As Integer
    s = 100
    TxtName.Text = Int(2.23 * s) / s
    MsgBox (2.23 * 100) / 100
      

  6.   

    原因呢?谁能说的明白一点。如果你是开发VB的工程师,你会允许你的VB这个样子吗?
      

  7.   

    为什么不用Cint(2.23*100)/100?
    而且为了保留两位小数,我觉得使用format语句不更方便么?
      

  8.   

    使用int函数是保留数值的整数位,小数部分舍掉,如8.9返回8
    fix函数类似,但是在取负数的时候,不同,fix(-3.5)返回 -3,int返回-4
    cint函数,小数位4舍5入,8.1返回8,8.9返回9
    2.23*100因为计算机的误差,可能是222.99999999999999999999999999999
    int会毫不留情的去掉后面的,不会4舍5入
    这不是vb的问题,关键要按照需要选择正确的函数
      

  9.   

    VB本来就有数值计算上的缺陷,所以很多科学计算程序还是
    用c或Fortran写得DLL