Więc mam skrypt JavaScript, który dodaje małe frakcje razem w pętli i możliwe, że doda od 0,2 do 0,1. Następnie ta wartość jest podawana do innej funkcji, ale problem jest potrzebny, aby podać 0.3, a nie 0.30000000000000004.Jaki jest najlepszy sposób radzenia sobie z błędami zmiennoprzecinkowymi?
Jaki jest najprostszy sposób, aby upewnić się, że liczba jest poprawiona i dokładna. Zauważ, że możliwe jest dodanie 0,25 + 0,125 itd., Dodanych do zwykłego zaokrąglenia do 1 miejsca po przecinku, nie rozwiąże problemu.
Możliwe jest również dodanie 0.2 + 0.10000000000000004, chociaż jest to bardzo mało prawdopodobne!
0,25 + 0,125 to nietypowy i prosty przypadek. Obie wartości i ich suma są dokładnie reprezentowalne, więc nie ma błędu zaokrąglania. Tak nie jest w przypadku 0.3. Najbliżej można uzyskać 0.299999999999999988897769753748434595763683319091796875. Czy to wystarczająco blisko? –
To nie jest rozwiązanie, ale bardziej głupia matematyka, tym dokładniejsza – Downgoat
W jaki sposób tworzone są twoje małe liczby? możesz lepiej pomnożyć wszystko przez '1000' –