我需要将格式化的整数转换为常规整数:
等等。
似乎一个简单的int(000000000015)
导致了数字13.我知道幕后有一些奇怪的东西。每次都准确地做到这一点的最佳方法是什么?
答案 0 :(得分:11)
以0
开头的数字被视为octal。
>>> 07
7
>>> 08
File "<stdin>", line 1
08
^
SyntaxError: invalid token
你可以将零填充数字包装成一个字符串,然后就可以了。
>>> int("08")
8
int()
接受一个可选参数,它是基数,因此上面将相当于:
>>> int("08", 10)
8
答案 1 :(得分:8)
前导零被视为八进制。我假设您正在转换字符串“000000013”,而不是字面值000000013,因此您应该能够将这些转换为基数10整数int("000000013",10)
如果“伤害已经完成”,并且它们是文字,已经转换为八进制文字,您可以使用以下(请注意,这是有害的和异端的:)
int(("%o" % 00000013),10)
答案 2 :(得分:3)
试试这个:
>>> int('00000000053', 10)
53
答案 3 :(得分:-8)
if x = "0000000000000001":
x = 1