如果我有这样的整数:
123456789
我想只返回12345 - 所以将数字修剪为5位数。
如果没有先转换为字符串,这可能吗?我无法看到任何内置函数来执行此操作。
答案 0 :(得分:7)
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...
答案 1 :(得分:0)
使用整数除法(//) 123456789 // 10000将返回12345.
答案 2 :(得分:0)
例如:
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
希望这有帮助! :)