x mod y 求的是x整除y的余数 具体上面式子的值的话,你自己可以在vb程序中验证一下啊~~~~
说明在进行 Mod 运算或求余数运算时,该运算符将 number1 用 number2 除(将浮点数字四舍五入成整数),并把余数作为 result 的值返回。例如,在下列表达式中,A (result) 等于 5。A = 19 Mod 6.7
在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
也就等於 ROUND(10.5) MOD ROUND(3.2) ----------- WWW.VICMIAO.COM 努力就有美好時光!
内部会类型转换先同clng(10.5) MOD clng(3.2) vb的转换是4舍5入的..
奇进偶不进。这样在一大串需要四舍五入的数相加相减相乘时误差小一点。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 努力就有美好時光!
具体上面式子的值的话,你自己可以在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
-----------
WWW.VICMIAO.COM
努力就有美好時光!
vb的转换是4舍5入的..
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
努力就有美好時光!
clng(2.5)=2
clng(3.5)=4
clng(4.5)=4
...
----------
www.vicmiao.com
努力就有美好时光!