Algorytmy i struktury danych · Senior · Pytanie 49 z 75
Dlaczego 0.1 + 0.2 !== 0.3 ma znaczenie dla algorytmów?
- 1Liczby powyżej 0.25 tracą całą precyzję
- 2JavaScript zaokrągla każdą sumę w dół do liczby całkowitej
- ✓Poprawna odpowiedź: Sumy liczb zmiennoprzecinkowych nie są dokładne, więc porównuj z tolerancją
Wyjaśnienie
Binarny zapis zmiennoprzecinkowy nie przedstawia dokładnie 0.1, a błędy kumulują się w długich sumach lub kodzie geometrycznym. Porównuj przez Math.abs(a - b) < epsilon, używaj liczb całkowitych (grosze zamiast złotych) albo BigInt do dokładnej arytmetyki całkowitej.