🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #215744

Re: Porównywanie liczb, double float

#215744
From: AK
Date: Tue, 25 Jun 2019 20:03
35 lines
2751 bytes
On 2019-06-20 14:16, Piotrne wrote:
> 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.

Swieta racja.

> 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ć.

J/w.

> 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.

Nie, gdyz policzenie nawet zwyklej sredniej moze sie okazac problemem.
Moze sie okazac ze obliczenie jej na dwojkowych floatach jest blizsze
rzeczywistosci niz na groszach, bcd czy czymkolwiek innym.

AK
Technical Details
Message-ID: <qetuln$g9d$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> <Jk8ME.2$6r.0@fx19.fr7> <5d011a5d$0$524$65785112@news.neostrada.pl> <qeftee$439$1@dont-email.me>

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: Tue, 25 Jun 2019 22:03:05 +0200
Organization: Aioe.org NNTP Server
Lines: 35
Message-ID: <qetuln$g9d$1@gioia.aioe.org>
References: <qdqqh6$n2f$1@dont-email.me> <Jk8ME.2$6r.0@fx19.fr7> <5d011a5d$0$524$65785112@news.neostrada.pl> <qeftee$439$1@dont-email.me>
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.1
X-Notice: Filtered by postfilter v. 0.9.2
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit