Xác định xem một số là số nguyên hay số thập phân trong Python

Kinh doanh

Xác định xem một số là số nguyên hay số thập phân trong Python.

Các trường hợp sau được giải thích bằng mã mẫu.

  • Xác định xem một số là số nguyên int hay số thực dấu phẩy động:isinstance()
  • Xác định xem một số kiểu float là một số nguyên (0 chữ số thập phân):float.is_integer()
  • Xác định xem một chuỗi số có phải là số nguyên hay không

Để có được giá trị nguyên và thập phân của một số thập phân, hãy xem bài viết sau.

Xem bài viết sau để biết thông tin về cách xác định xem một chuỗi là một số (bao gồm cả chữ số Trung Quốc, v.v.) thay vì xem nó là một số nguyên hay số thập phân.

Xác định xem một số là kiểu số nguyên hay dấu phẩy động:isinstance()

Kiểu của một đối tượng có thể được lấy bằng kiểu hàm tích hợp ().

i = 100
f = 1.23

print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>

isinstance(object, type)
Chức năng tích hợp này có thể được sử dụng để xác định xem một đối tượng có thuộc một kiểu cụ thể hay không. Điều này có thể được sử dụng để xác định xem một số là kiểu số nguyên hay dấu phẩy động.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

Trong trường hợp này, nó chỉ đánh giá kiểu, vì vậy nó không thể đánh giá liệu giá trị kiểu float có phải là số nguyên (với dấu thập phân là 0) hay không.

f_i = 100.0

print(type(f_i))
# <class 'float'>

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Xác định xem một số kiểu float là một số nguyên (0 chữ số thập phân):float.is_integer()

Phương thức is_integer () được cung cấp cho kiểu float, phương thức này trả về true nếu giá trị là số nguyên và false nếu ngược lại.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Ví dụ, một hàm trả về true cho một số nguyên có thể được định nghĩa như sau Mặt khác, kiểu chuỗi sẽ là false.

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

Xác định xem một chuỗi số có phải là số nguyên hay không

Nếu bạn muốn xác định rằng một chuỗi các chữ số nguyên cũng là một số nguyên, thì các hàm sau đây có thể thực hiện được.

Đối với các giá trị có thể được chuyển đổi thành kiểu float với float (), phương thức is_integer () được áp dụng sau khi chuyển đổi thành float và kết quả được trả về.

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

Xem bài viết sau để biết chi tiết về chuyển đổi chuỗi thành số.

Xem bài viết sau để biết chi tiết về cách xác định xem một chuỗi có phải là một số hay không (bao gồm cả chữ số Trung Quốc, v.v.).