VB中的运算符真讨厌。整除运算符(\)和求余运算符MOD,还有函数ROUND()。他们对取整怎么没有同意的要求?这是VB的BUG吗?
例如:9 \ 2.5 =4
      9 \ 3.5 =2
      round(6.5)=6
      round(7.5)=8天啊,怎么半啊?!

解决方案 »

  1.   

    四舍五入用int较好:
    Private Sub Command1_Click()
    a = 2.3
    b = 6.7
    Print Int(a + 0.5)
    Print Int(b + 0.5)
    End Sub
      

  2.   

    用这个,Fix( x + 0.5)
      

  3.   

    round(6.5)=6
    round(7.5)=8
    可能吗?
    明天试试。
      

  4.   

    Private Sub Command1_Click()
        Print Round(6.5)
        Print Round(7.5)
    End Sub结果确实如楼主所说,详细情况参看ROUND函数的说明!
    Private Sub Command1_Click()
        Print 9 / 2.5
        Print 9 / 3.5
    End Sub结果输出是正确的,我不知道为什么会出现楼主所说的情况,是不是你的类型定义有问题?
      

  5.   

    我用round函数试了一下,确实如搂主所说,用cint也一样。
    MSDN种类型转换中确实提到了这种情况。楼上的请看搂主用的是\而不是/
      

  6.   

    round 的原则是“四舍六入五凑偶”就是说如果最后一位是5那么如果前一位是偶数就不管,如果是奇数就进上去
      

  7.   

    fix(x+0.5)不是很好用吗,
    fix(6.5+0.5)=7
    fix(6.2+0.5)=6
    fix(7.5+0.5)=8
    fix(7.4+0.5)=7
    对于x来说,正好是四舍五入。