首页 > 解决方案 > 如何在 Python 中对大数进行正确除法?

问题描述

为什么在int和float中都存在除法错误?以及如何纠正它?

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

# output: 46374212988031352 52.0

# correct number: 46374212988031350

标签: pythonpython-3.xdivision

解决方案


这里似乎有两个问题。我将解决您的打印语句的第一部分,即print(int(231871064940156750/5)):请参阅这篇相关的帖子long integers division error in python ...

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

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

Informit.com解释说,“...Python 有两个除法运算符,一个用于经典除法的单斜杠字符和一个用于“地板”除法的双斜线(向下舍入到最接近的整数)。经典除法意味着如果操作数都是整数,它会执行地板除法,而对于浮点数,它代表真正的除法。”


推荐阅读