🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #215636

Re: Porównywanie liczb, double float

#215636
From: AK
Date: Sun, 16 Jun 2019 19:40
40 lines
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-mail
References: <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