Get the length of an Integer or a Float in Python

avatar
Borislav Hadzhiev

Last updated: Apr 8, 2024
5 min

banner

# Table of Contents

  1. Get the length of an Integer in Python
  2. Get the length of a Float in Python

# Get the length of an Integer in Python

To get the length of an integer in Python:

  1. Use the str() class to convert the integer to a string.
  2. Pass the string to the len() function, e.g. len(my_str).
  3. The len() function will return the length of the string.
main.py
my_int = 1234 my_str = str(my_int) print(len(my_str)) # ๐Ÿ‘‰๏ธ 4

get length of integer

The code for this article is available on GitHub

The len() function returns the length (the number of items) of an object.

The argument the function takes may be a sequence (a string, tuple, list, range or bytes) or a collection (a dictionary, set, or frozen set).

This is why we had to convert the integer to a string - we can't pass an integer to the len() function as integers are not a sequence or a collection.

# Handling possibly negative numbers

If you need to handle a scenario where the number is negative, subtract 1 from the result.

main.py
my_int = -1234 if my_int < 0: result = len(str(my_int)) - 1 else: result = len(str(my_int)) print(result) # ๐Ÿ‘‰๏ธ 4
The code for this article is available on GitHub

We check if the integer is less than 0, and if it is, we subtract 1 from its length to account for the minus - sign.

# Get the length of an integer without conversion to string

You can use the math.log10() method to get the length of an integer without converting it to a string.

main.py
import math def get_integer_length(integer): return int(math.log10(integer)) + 1 print(get_integer_length(100)) # ๐Ÿ‘‰๏ธ 3 print(get_integer_length(12345)) # ๐Ÿ‘‰๏ธ 5

get length of integer without conversion to string

The math.log10() method returns the base-10 logarithm of the supplied number.

main.py
import math print(math.log10(100)) # 2.0 print(math.log10(12345)) # 4.091491094267951

The log10() method cannot be invoked with a negative number or 10, otherwise, an error is raised.

# Handling negative numbers when using math.log10

If you need to handle negative numbers, make sure to only call the math.log10() method if the supplied number is greater than 0.

main.py
import math def get_integer_length(integer): if integer > 0: return int(math.log10(integer)) + 1 elif integer == 0: return 1 else: return int(math.log10(-integer)) + 2 print(get_integer_length(100)) # 3 print(get_integer_length(12345)) # 5 print(get_integer_length(-1234)) # 5 print(get_integer_length(0)) # 1

handling negative numbers with math log10

The code for this article is available on GitHub

If the given number is equal to 0, we return that it has a length of 1.

If the number is positive, we use the math.log10 method to get its length.

If the number is negative, we prefix it with a minus - sign to convert it to a positive number before calling math.log10.

If you don't want to count the minus - sign in the result, add 1 to the result of calling math.log10() if the number is negative.

main.py
import math def get_integer_length(integer): if integer > 0: return int(math.log10(integer)) + 1 elif integer == 0: return 1 else: return int(math.log10(-integer)) + 1 # ๐Ÿ‘ˆ๏ธ add 1 print(get_integer_length(-12)) # 2 print(get_integer_length(-1234)) # 4

The function above doesn't include the minus - sign in the length of negative numbers.

# If you consider 0 to have a length of 0

If your application considers the number 0 to have a length of 0, add an elif statement to check for 0.

main.py
my_int = 0 if my_int < 0: result = len(str(my_int)) - 1 elif my_int == 0: result = 0 else: result = len(str(my_int)) print(result) # ๐Ÿ‘‰๏ธ 0

The if statement checks if the number is less than 0, and if it is, it subtracts 1.

The elif statement checks if the number is equal to 0, and if it is, we assign 0 to the result variable.

If the else statement runs, the integer is positive, so we can convert it to a string and pass the string to the len() function.

# Get the length of an Integer using a formatted string literal

You can also use a formatted string literal to get the length of an integer.

main.py
my_int = 123 result = len(f'{my_int}') print(result) # ๐Ÿ‘‰๏ธ 3
The code for this article is available on GitHub

Formatted string literals (f-strings) let us include expressions inside of a string by prefixing the string with f.

main.py
my_str = 'is subscribed:' my_bool = True result = f'{my_str} {my_bool}' print(result) # ๐Ÿ‘‰๏ธ is subscribed: True

Make sure to wrap expressions in curly braces - {expression}.

# Get the length of a Float in Python

If you need to get the length of a float:

  1. Use the str() class to convert the float to a string.
  2. Pass the string to the len() function, e.g. len(result).
  3. The len() function will return the length of the string.
main.py
my_float = 3.14 my_str = str(my_float) print(len(my_str)) # ๐Ÿ‘‰๏ธ 4 without_counting_decimal = len(my_str) - 1 print(without_counting_decimal) # ๐Ÿ‘‰๏ธ 3

get length of float

The len() function returns the length (the number of items) of an object.

The argument the function takes may be a sequence (a string, tuple, list, range or bytes) or a collection (a dictionary, set, or frozen set).

This is why we had to convert the floating-point number to a string - we can't pass a float to the len() function as floats are not a sequence or a collection.

# Not counting the decimal

If you don't want to count the decimal, either subtract 1 from the result or replace it with an empty string.

main.py
my_float = 3.14 my_str = str(my_float) print(len(my_str)) # ๐Ÿ‘‰๏ธ 4 no_decimal_1 = len(my_str) - 1 print(no_decimal_1) # ๐Ÿ‘‰๏ธ 3 no_decimal_2 = len(my_str.replace('.', '')) print(no_decimal_2) # ๐Ÿ‘‰๏ธ 3
The code for this article is available on GitHub

We used the str.replace() method to remove the decimal from the string by replacing it with an empty string.

# Handling negative floating-point numbers

If you need to handle a scenario where the number is negative, subtract 1 from the result.

main.py
my_float = 3.14 if my_float < 0: result = len(str(my_float)) - 1 else: result = len(str(my_float)) print(result) # ๐Ÿ‘‰๏ธ 4

We check if the float is less than 0, and if it is, we subtract 1 from its length to account for the minus - sign.

# Using a formatted string literal to get the length of a float

You can also use a formatted string literal to get the length of a float.

main.py
my_float = 3.14 result = len(f'{my_float}') print(result) # ๐Ÿ‘‰๏ธ 4

Formatted string literals (f-strings) let us include expressions inside of a string by prefixing the string with f.

main.py
my_str = 'is subscribed:' my_bool = True result = f'{my_str} {my_bool}' print(result) # ๐Ÿ‘‰๏ธ is subscribed: True
The code for this article is available on GitHub

Make sure to wrap expressions in curly braces - {expression}.

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.

Copyright ยฉ 2024 Borislav Hadzhiev