python floor division运算符是如何实现的?

时间:2018-05-08 00:57:13

标签: python python-3.x precision floor-division

我知道//运算符是如何工作的,但是幕后发生了什么?

我真正想知道的是:即使在整数运算时它是否会受到浮点精度误差的影响?

2 个答案:

答案 0 :(得分:2)

Python在计算a // b时(a,b整数)不使用浮点运算。在划分ab时计算商和余数的经典长除法算法的实现。

大整数的实际除法在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;
}