Python中的大数如何正确除法?

How to do correct division for large numbers in Python?

为什么整型和浮点型都出现除法错误?以及如何纠正它?

print(int(231871064940156750/5),231871064940156750/5%100)

# output: 46374212988031352 52.0

# correct number: 46374212988031350

你需要的是

print(int(231871064940156750//5),231871064940156750/5%100)

使用 // 而不是 / 进行整数除法是为了与 Python 3.x 兼容,无需额外的努力。

Also make sure to take a quick look

对于 / 和 // 运算符

这里好像有两个问题。我将解决您的打印语句的第一部分,即 print(int(231871064940156750/5)):请参阅相关的 post ...

我尝试了其中的建议(使用两个斜杠),它达到了您期望的商数。

>>> print(int(231871064940156750//5))
46374212988031350
>>>

Informit.com 解释说,“...Python 有两个除法运算符,一个用于经典除法的单斜杠字符和一个用于“floor”除法的双斜杠字符(向下舍入到最接近的整数). 经典除法是指如果操作数都是整数,则进行floor除法,而对于浮点数,则表示真正的除法。"