刚看到网友周XY的一篇随笔里讲到求余运算。http://www.cnblogs.com/zhouxiaoyi/archive/2011/03/19/1988641.html
也忍不住发一点小感想。
余数本来是自然数计算里面的一个概念:指除法中被除数未被除尽的部分。
7 / 3 = 2 余 1
可以扩展到所有整数:
7 / (-3) = -2 余 1
(-7) / (-3) = 2 余 -1
(-7) / 3 = -2 余 -1
也可以扩展到所有实数:
0.7 / 0.3 = 2 余 0.1
0.7 / (-0.3) = -2 余 0.1
(-0.7) / (-0.3) = 2 余 -0.1
(-0.7) / 0.3 = -2 余 -0.1
用公式来表述求余运算:
a % b 即 a - parseInt(a / b) * b
特别说明一下,对于被除数是小数的,在某些JScript的文档里,是这么说的:
“取余(或余数)运算符用 number1 除以 number2 (把浮点数四舍五入为整数),然后只返回余数作为 result。例如,在下面的表达式中,A (即 result)等于 5。
A = 19 % 6.7”
不过,在IE下测得的结果与文档不一致,可能是某个IE版本升级后纠正了。
另外,一个特殊情况,即,b是0时,结果是多少。猜一下,是Infinity,还是NaN,还是0。
alert(1%0);