如何在Python中对大数进行正确除法?

时间:2019-03-17 09:54:56

标签: python python-3.x division

为什么int和float两者的除法都出错?以及如何纠正?

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

# output: 46374212988031352 52.0

# correct number: 46374212988031350

2 个答案:

答案 0 :(得分:1)

这里似乎有两个问题。我将在您的印刷声明的第一部分,即print(int(231871064940156750/5))中进行说明:请参阅相关文章long integers division error in python ...

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

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

Informit.com解释说:“ ... Python有两个除法运算符,经典除法使用单斜杠字符,“底”除法使用双斜杠(向下舍入为最接近的整数)。如果操作数都是整数,则将执行地板除法;对于浮点数,则表示真实除法。”

答案 1 :(得分:0)

Here is a very nice explantion

您需要的是

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

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

Also make sure to take a quick look

/和//运算符