Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membandingkan Nombor Titik Terapung dengan Tepat untuk Kesamaan Hampir dalam Python?
Membandingkan Terapung untuk Hampir-Kesamaan dalam Python: Pandangan Lebih Dekat
Disebabkan potensi isu pembundaran dan ketepatan, membandingkan terapung untuk kesamaan tepat dalam Python boleh mencabar. Ini adalah isu yang terkenal, seperti yang diserlahkan dalam catatan blog "Membandingkan Nombor Titik Terapung, Edisi 2012" Bruce Dawson. Untuk menangani cabaran ini dengan berkesan dalam Python, beberapa pendekatan boleh dipertimbangkan.
Fungsi Perpustakaan Standard
Python 3.5 memperkenalkan math.iclose() dan cmath.iclose() fungsi, yang direka khusus untuk membandingkan terapung dengan tahap toleransi. Fungsi ini menerima tiga hujah:
Jika perbezaan mutlak antara a dan b adalah kurang daripada rel_tol * max(abs(a), abs(b)) atau abs_tol, nilainya dianggap sama.
Fungsi Tersuai untuk Versi Python Terdahulu
Jika anda menggunakan versi Python lebih awal daripada 3.5, anda boleh melaksanakan fungsi isclose() anda sendiri berdasarkan coretan kod berikut yang disediakan dalam dokumentasi:
def isclose(a, b, rel_tol=1e-09, abs_tol=0.0): return abs(a - b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
Fungsi tersuai ini menawarkan fungsi yang sama seperti fungsi perpustakaan standard, membolehkan anda membandingkan terapung dalam julat toleransi yang ditentukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Nombor Titik Terapung dengan Tepat untuk Kesamaan Hampir dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!