代码之家  ›  专栏  ›  技术社区  ›  nellapizza

python楼层划分操作符是如何实现的?

  •  1
  • nellapizza  · 技术社区  · 6 年前

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

    我真正想知道的是:即使只对整数进行操作,它也会受到浮点精度错误的影响吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   casevh    6 年前

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

    大整数的实际除法在中实现 x_divrem() 可在中找到 longobject.c

        2
  •  0
  •   tav    3 年前

    这是Python floor division的C实现(当 b 为正):

    int py_floor_div(int a, int b)
    {
        if (a >= 0)
            return a / b;
        return (a - b + 1) / b;
    }