获取整数的最后三位数

时间:2015-02-17 20:26:55

标签: python integer int digit

我希望将整数如23457689更改为689,12457245到245等。

我不需要对数字进行舍入,也不希望必须转换为String。

有关如何在Python 2.7中完成此操作的任何想法吗?

2 个答案:

答案 0 :(得分:21)

使用%操作:

>>> x = 23457689
>>> x % 1000
689

%mod(即modulo)操作。

答案 1 :(得分:10)

正确处理正整数和负整数:

>>> x = -23457689
>>> print abs(x) % 1000
689

作为一种功能,您可以选择要保留的前导数字位数:

import math
def extract_digits(integer, digits=3, keep_sign=False):
    sign = 1 if not keep_sign else int(math.copysign(1, integer))
    return abs(integer) % (10**digits) * sign

避免转换为str的约束太迂腐了。如果数字的格式可能会改变,或者需要保留的尾随数字的格式会发生变化,那么转换为str将是一种很好的方法。

>>> int(str(x)[-3:])
              ^^^^^ Easier to modify this than shoe-horning the mod function.