%在VFP中是求余数的符号。要想求6除以5的余数,有两个方法,一个用%符号,一个用mod函数。
6%5 或者 mod(6,5)
mod(数1,数2)
此函数功能是求<数1>被<数2>除后的余数。
两数异号时,分两种情况:
1.
不管两数符号如何,只要<数1>是<数2>的倍数,余数就为0。
如:mod(8,-4)=0
mod(8,4)=0
mod(-8,4)=0
mod(-8,-4)=0
2.
如果<数1>不是<数2>的倍数时,分两步求,第一步求出的<数1>被<数2>除后的余数,符号与<数1>相同,第二步用上一步求出的余数加上第二个数,整个函数最后值的符号一定与<数2>相同。
提醒如果第一个数小于第二个数时,第一步余数是<数1>。
比如:mod(3,8)=3
mod(3,-8)=3+(-8)=-5
mod(-3,8)=-3+8=5
所以mod(6,-5)=1+(-5)=-4
%表示取模优先级高于+ -,
余数正负号与除数一致
先不看符号,当作正的计算。
然后取负负为正。
当-6%-5时,(-5-1)%-5余-1
当6%-5时,(10-4)%-5余-4
除数的符号应与余数的相同,所以不能从(5+1)%-5找
也就是6%(-5) 即6除以-5的余数.6除以-5计算机是这样算的等于-2,余4.(-2*-5)-6=4.
个人认为正数除以负数取余数,没有什么意义。
% 操作符 (Visual FoxPro)
返回两个数值表达式相除的余数。
nDividend % nDivisor
参数
nDividend
给出被除数(被除的数值表达式)。被除数 nDividend 中的小数位数决定了计算结果中的小数位数。
nDivisor
给出除数(除被除数 nDividend 的数值表达式)。当 nDivisor 为正数时,返回值为正数;当 nDivisor 为负数时,返回值为负数。除数 nDivisor 不能为零。
说明
取余操作符 (%) 和 MOD() 返回相同的结果。
取余操作符 (%) 是一个算术操作符。算术操作符还有:+(加法)、-(减法)、*(乘法)、/(除法)和 ^(乘幂)。当数值表达式中包含这些操作符时,% 和 *、/ 的优先级相同。
求余数的意思.
商-1,余1.
因为除数和被除数异号,所以这个结果再加上除数的结果,即1+(-5)=-4,这才是最后%的结果.
条件语句中,字符串表达式可以使用百分号
(%)
和下划线
(
_
)
通配符。
一个字符:下划线表示字符串中一个任意字符。
多个字符:%