Excel精英培训网

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

[已解决]mod函数里有小数该如何解释

[复制链接]
发表于 2013-4-19 20:08 | 显示全部楼层 |阅读模式
VBA里10.5 mod 2.6 等于1呢,定义为被除数和除数先四舍五入,那样不是11除以3吗,余数应该是2,而不是1呀,我哪理解错了?
最佳答案
2013-4-19 20:35
本帖最后由 lisachen 于 2013-4-19 20:40 编辑

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

10.4 mod 4        2
10.5 mod 4        2
10.6 mod 4        3
10.7 mod 4        3

发表于 2013-4-19 20:16 | 显示全部楼层
回复

使用道具 举报

发表于 2013-4-19 20:35 | 显示全部楼层    本楼为最佳答案   
本帖最后由 lisachen 于 2013-4-19 20:40 编辑

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

10.4 mod 4        2
10.5 mod 4        2
10.6 mod 4        3
10.7 mod 4        3

回复

使用道具 举报

 楼主| 发表于 2013-4-19 21:37 | 显示全部楼层
lisachen 发表于 2013-4-19 20:35
Mod 运算符来对两数作除法运算,但返回其余数而非商数。
如果两数中有一数为浮点数,该数会先被应该是五舍 ...

要五舍六入吗?没听过的,都是四舍五入呀
回复

使用道具 举报

发表于 2013-4-19 21:57 | 显示全部楼层
sixnu 发表于 2013-4-19 21:37
要五舍六入吗?没听过的,都是四舍五入呀

不信吗?运行下面一段试试
Sub test()
Dim i As Double
For i = 10.1 To 12 Step 0.1
Debug.Print i & " mod 4 :"; i Mod 4
Cells(i * 10 / 1 - 100, 1) = i & " mod 4"
Cells(i * 10 / 1 - 100, 2) = i Mod 4
Next i
End Sub

回复

使用道具 举报

发表于 2013-4-19 22:01 | 显示全部楼层
本帖最后由 lisachen 于 2013-4-19 22:04 编辑
sixnu 发表于 2013-4-19 21:37
要五舍六入吗?没听过的,都是四舍五入呀

VBA里10.5 mod 2.6 等于1呢,定义为被除数和除数先五舍 六 入,那样不是10除以3吗,是1呀
Sub test()
Dim i As Double
For i = 10.1 To 12 Step 0.1
Cells(i * 10 / 1 - 100, 1) = i & " mod 2.6"
Cells(i * 10 / 1 - 100, 2) = i Mod 2.6
Next i
End Sub

回复

使用道具 举报

发表于 2013-5-1 22:14 | 显示全部楼层
见识了         
回复

使用道具 举报

发表于 2017-4-13 12:26 | 显示全部楼层
本帖最后由 lyky53898 于 2017-4-13 13:00 编辑

但是,11.5 mod 4 返回结果为0
回复

使用道具 举报

发表于 2017-9-5 11:35 | 显示全部楼层
四舍六入五成双,10 mod 2.5 得0 ,10 mod 3.5 得2 ,小数<=4舍去,小数>=6进位,小数=5,进位是双才进位,进位是单舍去
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 00:53 , Processed in 0.297286 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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