【发布时间】:2010-01-03 17:26:13
【问题描述】:
我需要把一个格式化的整数变成一个普通的整数:
- 000000000001需要变成1
- 000000000053需要变成53
- 000000965948需要变成965948
等等。
似乎一个简单的int(000000000015) 会导致数字 13。我知道幕后有一些奇怪的东西。每次都能准确地做到这一点的最佳方法是什么?
【问题讨论】:
-
@orokusaki,您未能清楚说明的关键点:这些是数字还是字符串?如果它们应该是数字,那么您将不会以 00000015 开头,除非这是某种自动生成的源代码。另一种澄清方式:这些信息来自哪里?
-
int(0000015)给你 13 因为它在使用int()函数之前被转换为int(13)。我相信您已经将数字作为字符串,在这种情况下它可以工作:int("000015")-> 15。 -
查看stackoverflow.com/questions/1995561/…。这让我觉得是对代码的极大浪费。先把前导零放在上面,然后把它们去掉。跳过整个前导零概念有什么问题。避免所有这些会简单得多。
-
@S.Lott 完全正确。将数字存储为整数并仅在“查看层”进行格式化
-
更新:我确实最终使用了 Integer,并像这样存储它。然后我创建了一个输出这个格式的格式化方法(这个格式只是为了和一些外部软件集成)。