Article View: pl.comp.programming
Article #215636Re: Porównywanie liczb, double float
From: AK
Date: Sun, 16 Jun 2019 19:40
Date: Sun, 16 Jun 2019 19:40
40 lines
2461 bytes
2461 bytes
On 2019-06-12 16:54, Cezary Grądys wrote: > W dniu 12.06.2019 o 14:29, Mateusz Viste pisze: > >> >> Prawdziwi programiści nie używają liczb zmiennoprzecinkowych. >> >> Obowiązkowa lektura na wieczór: >> http://perso.ens-lyon.fr/jean-michel.muller/goldberg.pdf >> > > Nie ma co przesadzać, liczby zmiennoprzecinkowe po to powstały, żeby je > używać. Trzeba tylko porównywać je zakładając pewną dopuszczalną > tolerancję. No dooobra. Zamieszcze tu po raz 473 w ciagu 20 lat podstawową formułkę (Ba! KANON!), bo przy takiej wiedzy "mlodego pokolenia" znow zaczną nam przychodzic ponaglenia o pilną zapłatę 0.00PLN. a == b -> fabs(a - b) <= EPS a != b -> fabs(a - b) > EPS a < b -> (a - b) < -EPS a > b -> (a - b) > EPS a <= b -> (a - b) <= EPS a >= b -> (a - b) >= -EPS PS: Oczywiscie EPS moze miec rozna nature i wartosci zaleznie np. od domeny (numeryka, finanse itp). Np. Moze byc bezwzgledne, ale czesto bywa wzgledne, a w numeryce to juz w ogole... Np. w optymalizacji moze byc dynamiczne (np zalezne nie tylko od wartosci ale i innych cech funkcji, np gradientu) i sztuka sama w sobie jest je dobierac/szacowac np w slabo zbieznych algorytmach czy gdy np. funcja jest baaardzo stroma. No ale to juz zupelnie inna "para kaloszy". PS0: Oczywiscie w niektorych "higienicznych" przypadkach (np. szukanie wartosci maksymalnej) dopuszczalne jest zwykłę >, ale to nie łamie/przeczy w/w regułom. AK
Technical Details
Message-ID:
<qe65vo$18po$1@gioia.aioe.org>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!weretis.net!feeder7.news.weretis.net!news.mixmin.net!aioe.org!.POSTED.pzxV5RzGbWhRV3wI1/aUwg.user.gioia.aioe.org!not-for-mailReferences:
<qdqqh6$n2f$1@dont-email.me> <5d00f035$0$15194$426a74cc@news.free.fr> <5d011217$0$17348$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!weretis.net!feeder7.news.weretis.net!news.mixmin.net!aioe.org!.POSTED.pzxV5RzGbWhRV3wI1/aUwg.user.gioia.aioe.org!not-for-mail From: AK <nobody@nowhere.net> Newsgroups: pl.comp.programming,pl.misc.elektronika Subject: Re: Porównywanie liczb, double float Date: Sun, 16 Jun 2019 21:40:41 +0200 Organization: Aioe.org NNTP Server Lines: 40 Message-ID: <qe65vo$18po$1@gioia.aioe.org> References: <qdqqh6$n2f$1@dont-email.me> <5d00f035$0$15194$426a74cc@news.free.fr> <5d011217$0$17348$65785112@news.neostrada.pl> NNTP-Posting-Host: pzxV5RzGbWhRV3wI1/aUwg.user.gioia.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 X-Notice: Filtered by postfilter v. 0.9.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit