-
71. Data: 2019-06-20 17:26:26
Temat: Re: Porównywanie liczb, double float
Od: Jarosław Sokołowski <j...@l...waw.pl>
Pan Mateusz Viste napisał:
>>>> 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.
>>>
>>> Tymczasem akcje Ursusa stoją po 0.797 zł. :)
>>
>> Zdaje się, że na słowackich stacjach benzynowych ceny paliwa podawane
>> są z taką dokładnością (w euro).
>
> We Francji także, i ten przykład pierwszy przyszedł mi do głowy, ale
> uznałem go za chybiony - wszak Piotrne specyficznie pisał o atomizmie
> grosza, a nie centa.
Ponadto w przypadku paliw, niejako z definicji, mamy do czynienia ze
zmienną typu float.
--
Jarek
-
72. Data: 2019-06-20 20:39:31
Temat: Re: Porównywanie liczb, double float
Od: Janusz <j...@o...pl>
W dniu 2019-06-20 o 14:16, Piotrne pisze:
> W dniu 2019-06-12 o 17:27, J.F. pisze:
> 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.
Masz teoretycznie rację ale to jakiego typu zmiennej używasz zależy od
języka, np w takim Cliperze 5.3
w którym w latach 90 popełniłem kilka programów liczących pieniądze jest
zmienna INT
ale w praniu wyszło że jest ona typu float :( i z problemem opisanym
przez Przemol-a musiałem się wtedy już zmierzyć, dodawałem tysięczne
części grosza na końcu przed samym porównaniem.
--
Janusz
-
73. Data: 2019-06-22 13:36:54
Temat: Re: Porównywanie liczb, double float
Od: Piotrne <p...@p...onet.pl>
W dniu 2019-06-20 o 14:38, Mateusz Viste pisze:
>
> Tymczasem akcje Ursusa stoją po 0.797 zł. :)
>
http://wyborcza.biz/Gieldy/1,132329,24492614,gpw-zmi
ana-dokladnosci-krokow-notowania-akcji-i-na-rynku-te
rminowym.html
Warszawa, 25.02.2019 (ISBnews) - Giełda Papierów Wartościowych (GPW) w Warszawie
zmienia kroki
notowania dla akcji, funduszy typu ETF, kontraktów terminowych na akcje i kursy
waluty od 4 marca
2019 r. Kursy tych instrumentów będą określane z dokładnością do czterech miejsc po
przecinku
(0,0001 zł), podała Giełda
...czyli jednostką jest tutaj 1/100 grosza.
Czasem praktyczne jest pamiętanie liczb zmiennoprzecinkowych jako ułamków -
oddzielnie
licznika i mianownika (typu całkowitego). Tak robi np. VirtualDub (do przetwarzania
filmów) przy zapamiętywaniu parametrów strumienia video.
P.
-
74. Data: 2019-06-22 14:47:01
Temat: Re: Porównywanie liczb, double float
Od: Piotrne <p...@p...onet.pl>
W dniu 2019-06-20 o 20:39, Janusz pisze:
> Masz teoretycznie rację ale to jakiego typu zmiennej używasz zależy od języka
Można jeszcze użyć typu decimal (np. w C#), który pamięta liczby
w układzie dziesiętnym i nie ma problemów z zaokrągleniami
liczby 0.1. Obliczenia są znacznie wolniejsze niż dla double
(są realizowane programowo, a nie sprzętowo).
P.
-
75. Data: 2019-06-23 14:57:14
Temat: Re: Porównywanie liczb, double float
Od: "J.F." <j...@p...onet.pl>
Dnia 20 Jun 2019 12:38:12 GMT, Mateusz Viste napisał(a):
> On Thu, 20 Jun 2019 14:16:12 +0200, Piotrne wrote:
>> 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.
> Tymczasem akcje Ursusa stoją po 0.797 zł. :)
Ciekawe, czy pamietaja na float, double, czy na int w 0.1gr :-)
J.
-
76. Data: 2019-06-25 21:25:30
Temat: Re: Porównywanie liczb, double float
Od: AK <n...@n...net>
On 2019-06-18 17:20, Mateusz Viste wrote:
> Wszystko zaczęło się od twojego stwierdzenia, że do skorzystania z float
> trzeba skończyć "półroczny zaawansowany wykład z analizy numerycznej".
> Otóż staram się> wyjaśnić że nie, bo do tego wystarczy być średnio rozgarniętym
> człowiekiem i poświęcić jeden wieczór na zrozumienie (na podstawie ogólno-
> dostępnej dokumentacji) czym jest float, jak działa i dlaczego to nie
> jest żadne uniwersalne narzędzie. No powiedzmy dwa wieczory, jeśli
> wliczyć w to zabawę z kompilatorem i sprawdzenia jak taki float reaguje w
> praktyce i w jaki sposób jest przechowywany w pamięci. Ok, niech będą 3
> wieczory, żeby jeszcze zerknąć do kilku projektów OSS jak oni korzystają
> (lub nie) z float, i dlaczego.
Powyzsze podejscie _kompletnie_ dyskwalifikuje Cie jako uzytkownika
liczb float. Ba! Dyskwalifikuje Cie jako programistę.
(niewazne czy samouka czy nie).
PS: Zapsz si ejednak na ten kurs numeryki. Moze jeszcze gdzies ucza o
float...
AK
-
77. Data: 2019-06-25 21:27:02
Temat: Re: Porównywanie liczb, double float
Od: AK <n...@n...net>
On 2019-06-18 17:54, Roman Tyczka wrote:
> Bo on mówi o zaawansowanej algorytmice, numeryce i matematyce, a Ty o
> rzeżbieniu w strumieniu danych, alokowaniu pamięci, ramkach, buforach i
> całym tym nieistotnym, niskopoziomowym, implementacyjnym pierdulamencie.
Dokładnie tak ;)
AK
-
78. Data: 2019-06-25 21:37:48
Temat: Re: Porównywanie liczb, double float
Od: AK <n...@n...net>
On 2019-06-19 11:35, J.F. wrote:
>> A te (a byly/sa takie) ktore uzywaja wewnetrznie systemu dziesietnego
>> maja rownie powazne problemy z danymi binarnymi.
>> Zaden argument.
>
> No ale liczby dziesietne ludzie uzywaja nagminnie
I co z tego?
"Problemy" z liczbami fp kompletnie nie zaleza od ich podstawy.
AK
-
79. Data: 2019-06-25 21:48:04
Temat: Re: Porównywanie liczb, double float
Od: AK <n...@n...net>
On 2019-06-19 11:45, J.F. wrote:
> Użytkownik "AK" napisał w wiadomości grup
> dyskusyjnych:qeckl4$1nvk$...@g...aioe.org...
> On 2019-06-17 16:09, J.F. wrote:
>>> Dzisiejsze koprocesory ciagle maja ten sam format liczby double,
>>> ktory powoduje te błędy.
>
>> Taaa? A zauwazyl Ty ze "przy okazji" posiadaja jeden z formatow dluzszy
>> niz najdluzszy int (czyli 80bit)?
>> Czyli moze liczyc w wiekszym zakresie :)
>
> Bez znaczenia - problem ciagle ten sam.
Nie. Obliczenia posrednie (wewnetrznie robione na np 80 bitach)
sa dokladniejsze, wiec koncowy wynik tez (lepiej/dokladniej
obcinany/zaokraglany)
> Nawiasem mowiac - czy mi sie wydaje, czy ten format 80-bit jest po
> cichutku wycofywany ?
A nie wiem. I.. chce nie wiedziec.
Ba! Wlasnie umiejetnosc poslugiwania sie fp polega na..
"nicniewiedzeniu" o ich faktycznej reprezentacji.
>>> Wczorajsze koprocesory mialy formaty BCD, ktore akurat pieniadze
>>> liczyly dokladnie, czy dzisiejsze maja to juz nie wiem.
>
>> Kolejny mit, ze BD jest "zbawieniem na cale zlo".
>
> Nie, ale czesto ulatwia.
Tak, ale w przypadku "surowych" dziesietnych czyli nie bedacych
wynikiem/uczestniczacych w obliczeniach. A ilez takich?
Nawet w bankowosci dosc malo.
>> PS: "My" akurat w defBank-u stosowalismy zwykle double i jakos Assecco
>> sie z tego powodu do dzis nie przekrecilo :)
>
> A kto zgarnial "cwierccentowki Dextera" ? :-)
Jamci... :)
> Ze wspomnien starszego informatyka ... bankowego.
> "Fortran, co to za g* jest. Klient ma na koncie 25.60, przychodzi mu
> 74.40,
> i na koncie ma 99.999996
> Przeszlismy na podwojna precyzje. To teraz ma
> 99.999999999954
> "
Zgoda, jeno cus mi sie wydaje ze to dosc mlody osesek psioczyl na ten
Fortran ;)
AK
-
80. Data: 2019-06-25 21:51:20
Temat: Re: Porównywanie liczb, double float
Od: AK <n...@n...net>
On 2019-06-19 13:40, Mateusz Viste wrote:
> A na problem - mimo że powszechnie znany - jednak ciągle nadziewają się
> nowi. Dziwne, że w banku (wydawałoby się, poważnej instytucji) w to
> wpadają.
Ci co sie znaja (starzy) to sie _nie nadziewaja_.
Nadziewaja sie nieodmiennie dzisiejsi MWzDM :(
> Ciekawostka - GnuCash z tego powodu wiele lat temu zrezygnował z float na
> rzecz stałego przecinka: http://www.gnucash.org/docs/v1.6/C/t7204.html
A co mi k... z roznica? :)
Jak juz to wazniejsza jest dlugosc mantysy.
AK