我希望将 23457689 更改为 689,将 12457245 更改为 245 等整数。
我不需要四舍五入,也不想转换为字符串。
有没有想法在 Python 2.7 中如何实现?
为了正确处理正数和负数:
>>> 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.