1. Cú pháp sử dụng hàm math.isclose() trong Python

Hàm math.isclose() trong Python được sử dụng để kiểm tra xem hai giá trị có gần nhau hay không. Nếu 2 giá trị là gần nhau thì sẽ trả về True, ngược lại nếu 2 giá trị không gần nhau sẽ trả về False. Cú pháp hàm math.isclose() như sau:

math.isclose(a, b, rel_tol, abs_tol)

Tham số:

  • là số đầu tiên cần kiểm tra
  • là số thứ 2 cần kiểm tra
  • rel_tollà dung sai tương đối – nó là chênh lệch tối đa cho phép giữa a và b, so với giá trị tuyệt đối lớn hơn của a hoặc b
  • abs_tol là dung sai tuyệt đối tối thiểu – hữu ích cho các so sánh gần bằng không. abs_tol ít nhất phải bằng 0.

Nếu không có lỗi nào xảy ra, hàm math.isclose() sẽ so sánh các giá trị theo công thức là: abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)

Giá trị trả về: Một giá trị kiểu bool. Giá trị True nếu các giá trị gần nhau, nếu các giá trị không gần nhau thì trả về giá trị False
Phiên bản Python: 3.5

Lưu ý: Nếu các giá trị a hoặc b không phải là kiểu số khi đó hàm sẽ không thể thực hiện kiểm tra xem 2 giá trị này có gần nhau hay không? Và hàm sẽ trả về một lỗi!

2. Ví dụ hàm math.isclose() trong Python

Ví dụ dưới đây, sử dụng hàm math.isclose() để kiểm tra xem các cặp số gồm hai giá trị ở bên dưới đây xem chúng có gần nhau hay không như sau:

import math  

print(math.isclose(8.005, 8.450, abs_tol = 0.4))
print(math.isclose(8.005, 8.450, abs_tol = 0.5)) 

Kết quả:

False
True

Ví dụ tiếp theo, truyền vào hàm các giá trị không phải kiểu số hàm math.isclose() sẽ không thể thực hiện kiểm tra xem 2 giá trị này có gần nhau hay không?

import math  

print(math.isclose(8.005, "a", abs_tol = 0.4))
print(math.isclose("b", 8.450, abs_tol = 0.5))

Kết quả:

Traceback (most recent call last):
  File "./prog.py", line 3, in <module>
TypeError: must be real number, not str