Check if a number is integer python

This article describes how to check if a number is an integer or a decimal in Python.

  • Check if object is int or float: isinstance()
  • Check if float is integer: is_integer()
  • Check if numeric string is integer

See the following article for how to get the fractional and integer parts.

  • Get the fractional and integer parts with math.modf() in Python

See the following article for checking if a string is a number.

  • Check if a string is numeric, alphabetic, alphanumeric, or ASCII

Check if object is int or float: isinstance()

You can get the type of an object with the built-in function type().

i = 100
f = 1.23

print(type(i))
print(type(f))
# 
# 

You can also check if an object is of a particular type with the built-in function isinstance(object, type).

  • Get and check the type of an object in Python: type(), isinstance()

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

In this case, since only the type is checked, you cannot check if the value of float is an integer (the fractional part is 0).

f_i = 100.0

print(type(f_i))
# 

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Check if float is integer: is_integer()

float has is_integer() method that returns True if the value is an integer, and False otherwise.

  • Built-in Types - float.is_integer — Python 3.10.5 documentation

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

For example, a function that returns True for an integer number (int or integer float) can be defined as follows. This function returns False for str.

def is_integer_num(n):
    if isinstance(n, int):
        return True
    if isinstance(n, float):
        return n.is_integer()
    return False

print(is_integer_num(100))
# True

print(is_integer_num(1.23))
# False

print(is_integer_num(100.0))
# True

print(is_integer_num('100'))
# False

Check if numeric string is integer

If you want to determine that the string of integer numbers is also an integer, the following function can be used.

If possible, the value is converted to float with float(), then is_integer() method is called, and the result is returned.

def is_integer(n):
    try:
        float(n)
    except ValueError:
        return False
    else:
        return float(n).is_integer()

print(is_integer(100))
# True

print(is_integer(100.0))
# True

print(is_integer(1.23))
# False

print(is_integer('100'))
# True

print(is_integer('100.0'))
# True

print(is_integer('1.23'))
# False

print(is_integer('string'))
# False

See the following articles for details on converting strings to numbers and handling exceptions with try ... except ....

  • Convert a string to a number (int, float) in Python
  • "try ... except ... else ... finally ..." in Python

How do you check if a number is a integer in Python?

To check if a Python object has the type int , call isinstance(obj, int) with the number as obj ..
x = 1.0..
print(x_int).
y = 1..
print(y_int).

How do you determine if a number is an integer?

An integer (pronounced IN-tuh-jer) is a whole number (not a fractional number) that can be positive, negative, or zero. Examples of integers are: -5, 1, 5, 8, 97, and 3,043. Examples of numbers that are not integers are: -1.43, 1 3/4, 3.14, . 09, and 5,643.1.

How do you check if a number is integer or float in Python?

Use the isinstance() function to check if a number is an int or float, e.g. if isinstance(my_num, int): . The isinstance function will return True if the passed in object is an instance of the provided class ( int or float ).