Ce face math.isclose()
Din cauza preciziei limitate, 0.1 + 0.2 == 0.3 este fals. isclose(a, b) consideră numerele egale dacă diferența lor este mică în raport cu mărimea lor (rel_tol, implicit o miliardime) sau sub o toleranță absolută (abs_tol).
Când compari cu 0, toleranța relativă nu ajută (orice procent din 0 este 0), deci dă un abs_tol.
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Numerele comparate. |
rel_tol |
Toleranța relativă. |
abs_tol |
Toleranța absolută. |
Ce returnează
True sau False.
Exemple
Exemplul 1: Comparații sigure
import math
print(0.1 + 0.2 == 0.3, math.isclose(0.1 + 0.2, 0.3))
print(math.isclose(100, 101, rel_tol=0.02))
print(math.isclose(1e-12, 0), math.isclose(1e-12, 0, abs_tol=1e-9))
Rezultat
False True
True
False True
Greșeli frecvente
- Compari cu zero fără
abs_tolși primești mereuFalse.
Comenzi înrudite
float(): Tipul numerelor cu zecimale; float() transformă un text sau un întreg în număr zecimal.round(): Rotunjește un număr la cel mai apropiat întreg sau la un număr de zecimale.math.isnan(), isinf() și isfinite(): Verifică dacă un număr este NaN, infinit sau un număr finit obișnuit.