如果我有这样的整数:
123456789
我只想返回 12345 - 所以将数字修剪为 5 位数的长度。
如果不先转换为字符串,这可能吗?我看不到任何内置功能可以做到这一点。
import math
def five_digits(number):
ndigits = int(math.log10(number))+1
try:
return number//int(10**(ndigits-5))
except ZeroDivisionError:
return number
print five_digits(10000000)
print five_digits(12345678)
print five_digits(12345)
print five_digits(1234) #don't know what you want to do with this one...
使用整数除法(//) 123456789 // 10000 将返回 12345。
例如:
number = 123456789
while number >= 10**6:
number = number/10
#wrapped in a function for n arbitrary
def trim_to_n(number, n):
negative = False
if number < 0:
negative = True
number = number * -1
limit = 10**(n+1)
while number >= limit:
number = number/10
if negative:
return number * -1
return number
更新:对于负值:D
希望这可以帮助!:)