进行大整数计算时python3中出现奇怪的错误

发布于 2021-01-29 14:56:22

我试图在Python 3.5.2中做到这一点:

int(204221389795918291262976/10000)

但是得到了意外的结果: 20422138979591827456

在Python 2.7.12中运行正常,结果是: 20422138979591829126L

知道为什么Python 3给我错误的结果吗?

关注者
0
被浏览
151
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在python 3中,您必须//显式使用整数除法,否则即使在2个整数之间也会应用浮点除法。

    这是python 2和python 3之间的主要变化之一

    在您的示例中:(将同时在python 2和python 3中工作,因此它向后兼容!)

    204221389795918291262976//10000
    20422138979591829126
    

    (您甚至无需转换为int此处,结果是int因为两个术语都为int

    顺便说一句,如果您想使此错误与python 2一起工作,也可以:)

    from __future__ import division
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看