Python 3具有大整数

时间:2014-03-18 00:08:16

标签: python python-3.x

我使用Python来处理一些大整数(64位,无符号)。我正在尝试将一串值转换为整数。但是我的Python3给了我不正确的结果。 例如,如果我将输入字符串“12736193479609682490”转换为整数,结果就不是我的预期:

a = '12736193479609682490'
b = int(float(a))

>>>b
12736193479609681920

我在ubuntu 12.04-64bit下使用Python 3.4.0。我该怎么做才能做出正确的转换?感谢。

2 个答案:

答案 0 :(得分:4)

不要先转换为浮动。

>>> int("12736193479609682490")
12736193479609682490

这个数字太大了,无法准确存放在浮点数中!

答案 1 :(得分:2)

不要先转换为float,否则就会失去准确性。

b = int(a)

浮点数在达到9007199254740992之后开始失败。首先是奇数值,然后越大越好。