求余运算(a % b
)是计算b
的多少倍刚刚好可以容入a
,返回多出来的那部分(余数)。
注意:
求余运算(%
)在其他语言也叫取模运算。然而严格说来,我们看该运算符对负数的操作结果,"求余"比"取模"更合适些。
我们来谈谈取余是怎么回事,计算9 % 4
,你先计算出4
的多少倍会刚好可以容入9
中:
2倍,非常好,那余数是1(用橙色标出)
在 Swift 中可以表达为:
9 % 4 // 等于 1
为了得到a % b
的结果,%
计算了以下等式,并输出余数
作为结果:
a = (b × 倍数) + 余数
当倍数
取最大值的时候,就会刚好可以容入a
中。
把9
和4
代入等式中,我们得1
:
9 = (4 × 2) + 1
同样的方法,我们来计算 -9 % 4
:
-9 % 4 // 等于 -1
把-9
和4
代入等式,-2
是取到的最大整数:
-9 = (4 × -2) + -1
余数是-1
。
在对负数b
求余时,b
的符号会被忽略。这意味着 a % b
和 a % -b
的结果是相同的。
浮点数求余计算
不同于 C 语言和 Objective-C,Swift 中是可以对浮点数进行求余的。
8 % 2.5 // 等于 0.5
这个例子中,8
除于2.5
等于3
余0.5
,所以结果是一个Double
值0.5
。