Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4166|回复: 14

[已解决]求Mod公式解释

[复制链接]
发表于 2013-3-30 11:05 | 显示全部楼层 |阅读模式
今天好奇地在VBA中试了下
[A1]=15.5 MOD 4

结果运行结果确是0.

但是在表格中用mod(15.5, 4)的结果却是3.5.

求大神解释下这个是怎么回事?
最佳答案
2013-3-30 11:17
本帖最后由 顺⑦.zì繎。 于 2013-3-30 11:19 编辑

公式中   =a-INT(a/b)*b  MOD取余数
VBA中  小数 四省五入 保留正数  =16/4  =0
发表于 2013-3-30 11:12 | 显示全部楼层
结果是3.5  是对的
mod  是取余函数  
15.5/4=3余3.5  所以 15.5 MOD 4=3.5
回复

使用道具 举报

 楼主| 发表于 2013-3-30 11:13 | 显示全部楼层
1032446692 发表于 2013-3-30 11:12
结果是3.5  是对的
mod  是取余函数  
15.5/4=3余3.5  所以 15.5 MOD 4=3.5

为什么在VBA中会是0?
回复

使用道具 举报

发表于 2013-3-30 11:16 | 显示全部楼层
有附件有真相~~~~~~~~
回复

使用道具 举报

发表于 2013-3-30 11:17 | 显示全部楼层    本楼为最佳答案   
本帖最后由 顺⑦.zì繎。 于 2013-3-30 11:19 编辑

公式中   =a-INT(a/b)*b  MOD取余数
VBA中  小数 四省五入 保留正数  =16/4  =0
回复

使用道具 举报

发表于 2013-3-30 11:22 | 显示全部楼层
本帖最后由 lisachen 于 2013-3-30 11:38 编辑

谢谢8楼1032446692 提醒


Mod 运算符来对两数作除法运算,但返回其余数而非商数。
如果两数中有一数为浮点数,该数会先被四舍五入(更正:应该是五舍六入)成整型后再进行运算。


15.5 MOD 4   ' 返回 0。
14.5 Mod 4    ' 返回 2。
回复

使用道具 举报

发表于 2013-3-30 11:23 | 显示全部楼层
白凑热闹了,不懂。。。。
回复

使用道具 举报

发表于 2013-3-30 11:24 | 显示全部楼层
本帖最后由 1032446692 于 2013-3-30 11:27 编辑
烨熙 发表于 2013-3-30 11:13
为什么在VBA中会是0?


刚才错了 查了一下VBA中mod的用法,它的返回值为Byte类型,将浮点数字四舍五入成整数
例如 15.49 mod 4  本应等于3.49   但是 取整以后就是3  当然了 15.5 mod 4 =3.5 取整应该是4   但是它等于除数  所以就等于0


不过看了楼上的  好像也不是这么回事
回复

使用道具 举报

发表于 2013-3-30 11:25 | 显示全部楼层
lisachen 发表于 2013-3-30 11:22
Mod 运算符来对两数作除法运算,但返回其余数而非商数。
如果两数中有一数为浮点数,该数会先被四舍五入成 ...

这样好像也不对啊
回复

使用道具 举报

 楼主| 发表于 2013-3-30 11:27 | 显示全部楼层
顺⑦.zì繎。 发表于 2013-3-30 11:17
公式中   =a-INT(a/b)*b  MOD取余数
VBA中  小数 四省五入 保留正数  =16/4  =0

应该是对了。

我试了下
15.2 mod 4 =3
15.4 mod 4 =3
15.5 mod 4 =0
15.6 mod 4 =0

所以VBA 中 mod 是先对a四省五入,在做取余,永远不会出现小数的余
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-15 10:08 , Processed in 0.351288 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表