Reputation: 35734
if i have an integer like this:
123456789
I would like to return only 12345 - so trimming the number to a length of 5 digits.
Is this possible without first converting to a string? I cant see any built in function to do this.
Upvotes: 2
Views: 6222
Reputation: 309909
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...
Upvotes: 9
Reputation: 29794
For example:
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
UPDATED: For negative values :D
Hope this helps! :)
Upvotes: 1