扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在大部分语言(c、c++、c#、java、vb.net、php等)中,求余的结果的正负与被除数相同。
创新互联建站-专业网站定制、快速模板网站建设、高性价比黄山区网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式黄山区网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖黄山区地区。费用合理售后完善,十余年实体公司更值得信赖。
因此,-13%5的结果是-3。
但对于python,结果是2。
因为对于python而言,是这样算%的结果的:
a%b=a-(a//b*b)
a//b表示a除以b的整数部分,是向下取整,即向负无穷大方向取整。
因此,-13//5等于-3,而-13%5=-13-(-13//5*5)=-13-(-3*5)=-13-(-15)=2。
所以,-13%5的结果要看语言而定,一般是-3。
VB6中Mod 运算符功能是两数相除求余。
如果两数中带小数,Mod 会先四舍六入取整,再按整数求余,余数带小数的话只取整数部分。
注意,如果有书说四舍五入,是错的。
在 VB6 用的是所谓银行家算法,是四舍六入:
小数部分比 0.5 小就舍(例如0.4,0.49999),比 0.5 大就进(例如0.6,0.500001),
刚好是 0.5 可能舍可能进,如果小数点前面是偶数就舍(例如2.5 得 2),是奇数就进(例如3.5 得 4)。
Mod 运算符在VB.NET中有改动,余数可以带小数。
以上资料来自:
所以2.5 mod 2结果是0
VB中通过Mod方式求余比如:Dim r as Integer '定义一个整型变量r
r = 50 Mod 4 '求50除以4的
余数
,赋值给变量r补充:VB中取余
运算符
是Mod
Not一个数值实际上是对这个数值进行“非”运算,即转换为2进制,0变为1,1变为0,你可以这样试:
For i = 1 To 10
s = i
debug.print not (i Mod 5 )
Next
这样可以看到not (i Mod 5 )这个表达式究竟等于多少。
按照你的想法,应该这样做结果才是对的:
If Not (i Mod 5 0) Then
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流