一个小问题,9%-4,结果是-3,而-9%4,结果确是3。
其实是计算机对公式中商的运算有些奇怪。以下对%运算过程给出解释:
公式:余数=被除数-除数*商
其中,商是指计算机对两个数进行"//"取整除法计算的结果。
比如对于9%-4,结果是-3,
首先计算机会计算9//-4,结果向下取整是-3,那么这个算式的商就是-3,
接下来使用-3作为商进行公式计算,即
余数=9-(-4*(-3)),结果是-3。
而对于-9%4,-9//4的结果向下取整也是-3,但是放进公式:
余数=-9-(4*(-3)),结果就变成3了。