10.5 MOD 3.2=?  为什么

解决方案 »

  1.   

    x mod y 求的是x整除y的余数
    具体上面式子的值的话,你自己可以在vb程序中验证一下啊~~~~
      

  2.   

    说明在进行 Mod 运算或求余数运算时,该运算符将 number1 用 number2 除(将浮点数字四舍五入成整数),并把余数作为 result 的值返回。例如,在下列表达式中,A (result) 等于 5。A = 19 Mod 6.7
      

  3.   

    在VB中实际测试了一下得出如下结论:
    进行MOD运算时如果参加运算的两个数字不为整数,那么VB将把MOD前面的数字进行5舍6入,对MOD后面的数字进行4舍5入,然后再计算余数。所以
    10.5 MOD 3.2=1
    10.6 MOD 3.2=2
    10.6 MOD 3.5=3
      

  4.   

    也就等於 ROUND(10.5) MOD ROUND(3.2)
    -----------
    WWW.VICMIAO.COM
    努力就有美好時光!
      

  5.   

    内部会类型转换先同clng(10.5) MOD clng(3.2)
    vb的转换是4舍5入的..
      

  6.   

    奇进偶不进。这样在一大串需要四舍五入的数相加相减相乘时误差小一点。eg:1.25+1.35+1.45+1.55+1.15+1.65=8.4=round(1.25)+round(1.35)+round(…… 
        ROUND函数符合国家和国际标准,该函数是正确的。原先的四舍五入只是一个简化。 
        在微软的Knowledge Base的文章:“Q194983 PRB: Round Function Different in VBA 6 and Excel Spreadsheet”和微软的Knowledge Base的文章:“Q189847 INFO: New String and Format Functions in Visual Basic 6.0”中都指出Round函数实行Banker舍入,而不是我们习惯的算术舍入(四舍五入)。你可以参考微软的Knowledge Base的文章:“Q196652 HOWTO: Implement Custom Rounding Procedures”,它对于舍入问题有详细的讨论。---------
    www.vicmiao.com
    努力就有美好時光!
      

  7.   

    不好意思,犯了一个严重的低级错误,确如楼上两位所说,MOD运算前会将两个数字转换为long型,不过不完全是我们平常所说的4舍5入,对于x.5的情况,VB采用的是单进双不进的原则,即clng(1.5)=2
    clng(2.5)=2
    clng(3.5)=4
    clng(4.5)=4
    ...
      

  8.   

    VB6中文版说这个函数是四舍五入函数,实际上这个函数采用的四舍六入五留双
    ----------
    www.vicmiao.com
    努力就有美好时光!