% | C++ | Python |
---|---|---|
支持的数值类型 | 整数 | 浮点 |
计算方法 | a % b = a − a / b a\%b=a-a/b a%b=a−a/b | a % b = a − a / / b a\%b=a-a//b a%b=a−a//b |
C++中整数除法返回整数,小数部分舍去。Python中整除//的结果向负无穷舍入。因此两者的%符号计算结果存在差异。
例如:
# python
print((-5)%(2), (-5)%(-2), (5)%(2), (5)%(-2))
# 1 -1 1 -1
# C++
cout<<(-5)%(2)<<(-5)%(-2)<<(5)%(2)<<(5)%(-2)<<endl;
#-1-111
总结:计算方法就是先算除法,把剩下的留给余数。也有说这C++和Python对%的定义不同,分别是求余和求模,未考证。
顺便说下:python中的int(a)是向0取的。