Article View: pl.comp.programming
Article #215735Re: Porównywanie liczb, double float
From: Piotrne
Date: Thu, 20 Jun 2019 12:16
Date: Thu, 20 Jun 2019 12:16
24 lines
2678 bytes
2678 bytes
W dniu 2019-06-12 o 17:27, J.F. pisze: >> Weź chłopie ić na studia (ja miałem to nawet na wieczorowych 20 lat temu) i się doucz! Zamiast >> zadawać głupie pytania. Choć gdybyś dłubał w czymś innym niż VB to byś wiedział o problemie (w >> każdej książce do Asemblera czy C czy C++ to powinno być). > > Musialbym sobie przypomniec ... ale przy okazji Assemblera raczej nikt nie poruszal takiego watku. > Przy C predzej, ale to gdzies na pograniczu. Na studiach jest (powinien być?) cały przedmiot o nazwie "Arytmetyka maszyn cyfrowych", gdzie na kilkudziesięciu godzinach wykładów można dokładnie dowiedzieć się, jak są pamiętane liczby całkowite ze znakiem, bez znaku, zmiennoprzecinkowe, dlaczego i kiedy występują błędy zaokrągleń itp. Można też dowiedzieć się, że warunek "jeśli a jest równe b" przy rzeczywistych typach a, b to proszenie się o kłopoty. Problemy nie zależą od języka programowania. Ułamka dziesiętnego 0.8 nie da się w przyjętym sposobie zapisu liczb zmiennoprzecinkowych zapisać dokładnie - w układzie dwójkowym jest to ułamek okresowy, ma nieskończenie wiele znaczących cyfr. Nie można ich wszystkich pamiętać. Oczywistym rozwiązaniem pozwalającym uniknąć błędów jest używanie tylko liczb całkowitych. Np. jeśli ma to być jakaś kwota pieniędzy, należy liczyć w groszach (zawsze całkowitych), a nie złotówkach i ułamkach złotego. P.
Technical Details
Message-ID:
<qeftee$439$1@dont-email.me>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!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mailReferences:
<qdqqh6$n2f$1@dont-email.me> <Jk8ME.2$6r.0@fx19.fr7> <5d011a5d$0$524$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!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Piotrne <piotrne@poczta.onet.pl> Newsgroups: pl.comp.programming,pl.misc.elektronika Subject: Re: Porównywanie liczb, double float Date: Thu, 20 Jun 2019 14:16:12 +0200 Organization: A noiseless patient Spider Lines: 25 Message-ID: <qeftee$439$1@dont-email.me> References: <qdqqh6$n2f$1@dont-email.me> <Jk8ME.2$6r.0@fx19.fr7> <5d011a5d$0$524$65785112@news.neostrada.pl> Mime-Version: 1.0 Injection-Date: Thu, 20 Jun 2019 12:16:14 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="c5c8063145014a63b5b12746f90dbce6"; logging-data="4201"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19adfzq4yWN+W3Yf/QvtwAu" User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 Cancel-Lock: sha1:prl757jAmk/lkgnvoVse9VC7uuk= In-Reply-To: <5d011a5d$0$524$65785112@news.neostrada.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit