Co wypisze program w języku Python?
a = 0.1 + 0.2
b = 1 + 2
print(a == 0.3, b == 3)Dlaczego tak
Liczby 0.1 i 0.2 typu float są zapisane w systemie dwójkowym zmiennoprzecinkowym tylko w przybliżeniu, więc ich suma to 0.30000000000000004 i nie jest równa 0.3. Liczby całkowite typu int są przechowywane dokładnie, więc 1 + 2 == 3 daje True. Odpowiedź True True zakłada, że arytmetyka zmiennoprzecinkowa jest dokładna — dlatego wartości typu float porównuje się z tolerancją, np. funkcją math.isclose.