长整数 - python 3 vs python 2

时间:2017-11-28 10:02:06

标签: python python-3.x python-2.7

我需要帮助才能理解为什么这段代码在python 2中正常工作,但它对python 3不起作用。

res = 76460188758730153884232119087179527041998988911761118644170793575
while res > 31:
    print(res%31)
    res = (res - res%31)/ 31

在python 2中,res%31的结果是:23,17,2,28,17,17

在python 3中,res%31的结果是:23,4.0,17.0,6.0,21.0,22.0,18.0,14.0

我在python3中遇到长号问题,但我无法解决它们。

提前致谢,

2 个答案:

答案 0 :(得分:1)

这不是大数或小数的问题,而是@khelwood在他/她的评论中指出python如何处理分裂。在python3中/将返回flaoat(或更加精确的duoble),如果你想获得整数(或长),你需要使用//。查看更多herehere

答案 1 :(得分:1)

您需要在Python 3.x中使用//来获取整数作为除法的结果。在python3中使用/始终返回浮动值。