Aşağıdaki Python kodunda sqrt(2) değeri IEEE 754 binary64 (Python float) olarak saklanır:
import math
x = math.sqrt(2)
y = x * x - 2.0
print(f"x = {x:.17g}")
print(f"x*x - 2 = {y:.17g}")
print(math.isclose(x * x, 2.0, rel_tol=1e-15))Tipik CPython çıktısı şöyledir:
x = 1.4142135623730951
x*x - 2 = 4.4408920985006262e-16
TrueMatematiksel olarak $\left(\sqrt{2}\right)^2-2=0$ olduğu hâlde kayan nokta hesabında neden küçük bir artık kalır? Sonucun neden doğrudan == 0 ile karşılaştırılmaması gerektiğini ve math.isclose kullanımını açıklayın.



