关于“求余”运算的一些小感想

刚看到网友周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);

posted on 2011-03-19 12:20  JKisJK  阅读(1732)  评论(0编辑  收藏  举报

导航