我知道 // 运算符是如何工作的,但是幕后发生了什么?
我真正想知道的是:即使只对整数进行运算,它是否也会出现浮点精度错误?
我知道 // 运算符是如何工作的,但是幕后发生了什么?
我真正想知道的是:即使只对整数进行运算,它是否也会出现浮点精度错误?
Python 在计算时不使用浮点运算a // b(对于 a、b 整数)。经典长除法算法的实现,用于计算除a和时的商和余数b。
大整数的实际除法x_divrem()在longobject.c中实现。
这是 Python 楼层除法的 C 实现(何时b为正):
int py_floor_div(int a, int b)
{
if (a >= 0)
return a / b;
return (a - b + 1) / b;
}