为什么int和float两者的除法都出错?以及如何纠正?
print(int(231871064940156750/5),231871064940156750/5%100)
# output: 46374212988031352 52.0
# correct number: 46374212988031350
答案 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
/和//运算符