我知道//运算符是如何工作的,但是幕后发生了什么?
我真正想知道的是:即使在整数运算时它是否会受到浮点精度误差的影响?
答案 0 :(得分:2)
Python在计算a // b
时(a,b整数)不使用浮点运算。在划分a
和b
时计算商和余数的经典长除法算法的实现。
大整数的实际除法在x_divrem()
preg_split()
中实现。
答案 1 :(得分:0)
这是 Python 楼层划分的 C 实现(当 b
为正时):
int py_floor_div(int a, int b)
{
if (a >= 0)
return a / b;
return (a - b + 1) / b;
}