-
31. Data: 2013-11-15 08:07:56
Temat: Re: ułamki (alternatywnie do floata)
Od: Paweł Kierski <n...@p...net>
W dniu 2013-11-14 18:11, Ghost pisze:
>
> Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
> news:pkierski.pcp.1384423833@news.chmurka.net...
>> W dniu 2013-11-14 09:59, Ghost pisze:
>> [...]
>>>> Niestety tak przygotowane liczby nie przydają się aż tak bardzo w
>>>> zastosowaniach finansowych. Bzdurne ograniczenie do 4 liczb po
>>>> przecinku bierze w łeb, gdy zaczynamy działać na więcej niż jednej
>>>> walucie, a gdy dojdą do tego procenty, są wręcz szkodliwe... Dlatego
>>>> nie wiem do czego można stosować przykładowo TCurrency z Delphi nie
>>>> przydaje się do niczego sensownego, ponad proste działania....
>>>
>>> Do przechowywania nadaje sie idealnie, co do obliczen, wystarczy
>>> minimalnie wieksza precyzja celem wlasciwej realizacji zaokraglen.
>>
>> Jaka precyzja jest potrzebna to już z reguły wynika z konkretnych
>> uregulowań prawnych.
>
> No i gdzies masz wiecej niz cztery cyfry po przecinku?
Notowania Forex - większość par walutowych jest podawana z dokładnością
do pięciu. Platforma transakcyjna pozwala na handel instrumentami z taką
dokładnością, więc np. rozliczenie CFD będzie musiało być policzone co
najmniej z taką dokładnością. A jeszcze jak od tych wartości masz
policzyć np. prowizję w wysokości 0,9%, albo podatek 21%. Na końcu
pewnie zaokrąglisz do wynikowej waluty, najczęściej nawet do dwóch cyfr
po przecinku, ale po drodze liczenie na czterech po przecinku może się
mocno mścić.
--
Paweł Kierski
n...@p...net
-
32. Data: 2013-11-15 08:09:59
Temat: Re: ułamki (alternatywnie do floata)
Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl>
W dniu 2013-11-14 19:48, bartekltg pisze:
> W dniu 2013-11-14 09:40, Paweł Kierski pisze:
>> W dniu 2013-11-14 09:12, Tomasz Kaczanowski pisze:
>>> W dniu 2013-11-14 09:03, Robert Winkler pisze:
>>>> Ale żeby nie było tak pesymistycznie.
>>>> Jest jedno zastosowanie gdzie stosowanie liczba zmiennoprzecinkowych
>>>> jest niedopuszczalne i gdzie od dziesięcioleci stosuje się zapis
>>>> podobny
>>>> do proponowanego przez ciebie, czyli liczby stałoprzecinkowe,
>>>> a domeną są finanse.
>>>> Z tego powody bazy danych, niektóre języki programowania i biblioteki
>>>> oferują typy danych rodzaju money czy decimal do przechowywania kwot.
>>>> Przyjmuje się tam jednak stała wartość mianownika,
>>>> jedną z wielokrotności liczby 10,
>>>> na przykład 10000, zapewnia to 4 miejsca po przecinku,
>>>> co wystarczy aby prawidłowo opisać problem zaokrągleń,
>>>> przy założeniu że minimalną wartością jaką można operować
>>>> jest cent, grosz lub ich odpowiednik z innych systemów walutowych.
>>>
>>> Niestety tak przygotowane liczby nie przydają się aż tak bardzo w
>>> zastosowaniach finansowych. Bzdurne ograniczenie do 4 liczb po przecinku
>>> bierze w łeb, gdy zaczynamy działać na więcej niż jednej walucie, a gdy
>>> dojdą do tego procenty, są wręcz szkodliwe... Dlatego nie wiem do czego
>>> można stosować przykładowo TCurrency z Delphi nie przydaje się do
>>> niczego sensownego, ponad proste działania....
>>
>> Rozwiązaniem jest float o podstawie 10 a nie 2 + dobra obsługa
>> zaokrągleń.
>
> Float to 7 cyfr dziesiętnych.
> Roczne zarobki posła i już jesteś na granicy zgubienia grosika.
> Z budżetu Polski podprowadziłeś 34złote ;-)
Pawłowi chodziło o własny typ float....
>
>> Sam używam opakowanego http://speleotrove.com/decimal/ - ma to m.in.
>> taki ficzer, że 1.23 + 1.27 = 2.50 a nie 2.5
>
> Ciekawe. Ale czemu nie użyć liczby całkowitej?
> Przewalutowania i procenty i tak liczy się do złotówki/dolara czy
> grosza/centa, bo liczy się wg przepisów.
Nie - liczy się dokładniej - księguje się z dokładnością do grosza/centa
ect... Inaczej jakbyś miał paczkę 1000 diodek za 2 zł, to sumując
wartościami te diodki miałbyś 0zł.
--
Kaczus
http://kaczus.ppa.pl
-
33. Data: 2013-11-15 08:13:10
Temat: Re: ułamki (alternatywnie do floata)
Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl>
W dniu 2013-11-14 18:11, Ghost pisze:
>
> Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
> news:pkierski.pcp.1384423833@news.chmurka.net...
>> W dniu 2013-11-14 09:59, Ghost pisze:
>> [...]
>>>> Niestety tak przygotowane liczby nie przydają się aż tak bardzo w
>>>> zastosowaniach finansowych. Bzdurne ograniczenie do 4 liczb po
>>>> przecinku bierze w łeb, gdy zaczynamy działać na więcej niż jednej
>>>> walucie, a gdy dojdą do tego procenty, są wręcz szkodliwe... Dlatego
>>>> nie wiem do czego można stosować przykładowo TCurrency z Delphi nie
>>>> przydaje się do niczego sensownego, ponad proste działania....
>>>
>>> Do przechowywania nadaje sie idealnie, co do obliczen, wystarczy
>>> minimalnie wieksza precyzja celem wlasciwej realizacji zaokraglen.
>>
>> Jaka precyzja jest potrzebna to już z reguły wynika z konkretnych
>> uregulowań prawnych.
>
> No i gdzies masz wiecej niz cztery cyfry po przecinku?
Przy księgowaniu, czy obliczeniach? Bo dałem przykład, powiedzmy, ze
rozliczenia prowadzisz w Euro, natomiast masz na stanie np forinty,
dodatkowo powiedzmy, że liczysz od nich oprocentowanie i wyrażać musisz
zarówno w forintach jak i w euro. Dodatkowo, niektóre papiery
wartościowe, przynajmniej swojego czasu potrzebowały wyższej precyzji
niż 4 miejsca po przecinku.
--
Kaczus
http://kaczus.ppa.pl
-
34. Data: 2013-11-15 08:20:04
Temat: Re: ułamki (alternatywnie do floata)
Od: Paweł Kierski <n...@p...net>
W dniu 2013-11-14 19:48, bartekltg pisze:
> W dniu 2013-11-14 09:40, Paweł Kierski pisze:
>> W dniu 2013-11-14 09:12, Tomasz Kaczanowski pisze:
>>> W dniu 2013-11-14 09:03, Robert Winkler pisze:
>>>> Ale żeby nie było tak pesymistycznie.
>>>> Jest jedno zastosowanie gdzie stosowanie liczba zmiennoprzecinkowych
>>>> jest niedopuszczalne i gdzie od dziesięcioleci stosuje się zapis
>>>> podobny
>>>> do proponowanego przez ciebie, czyli liczby stałoprzecinkowe,
>>>> a domeną są finanse.
>>>> Z tego powody bazy danych, niektóre języki programowania i biblioteki
>>>> oferują typy danych rodzaju money czy decimal do przechowywania kwot.
>>>> Przyjmuje się tam jednak stała wartość mianownika,
>>>> jedną z wielokrotności liczby 10,
>>>> na przykład 10000, zapewnia to 4 miejsca po przecinku,
>>>> co wystarczy aby prawidłowo opisać problem zaokrągleń,
>>>> przy założeniu że minimalną wartością jaką można operować
>>>> jest cent, grosz lub ich odpowiednik z innych systemów walutowych.
>>>
>>> Niestety tak przygotowane liczby nie przydają się aż tak bardzo w
>>> zastosowaniach finansowych. Bzdurne ograniczenie do 4 liczb po przecinku
>>> bierze w łeb, gdy zaczynamy działać na więcej niż jednej walucie, a gdy
>>> dojdą do tego procenty, są wręcz szkodliwe... Dlatego nie wiem do czego
>>> można stosować przykładowo TCurrency z Delphi nie przydaje się do
>>> niczego sensownego, ponad proste działania....
>>
>> Rozwiązaniem jest float o podstawie 10 a nie 2 + dobra obsługa
>> zaokrągleń.
>
> Float to 7 cyfr dziesiętnych.
> Roczne zarobki posła i już jesteś na granicy zgubienia grosika.
> Z budżetu Polski podprowadziłeś 34złote ;-)
Pisząc "float" miałem na myśli liczby zmiennoprzecinkowe.
Wielkość mantysy zwykle jest większa niż 7.
>
>> Sam używam opakowanego http://speleotrove.com/decimal/ - ma to m.in.
>> taki ficzer, że 1.23 + 1.27 = 2.50 a nie 2.5
>
> Ciekawe. Ale czemu nie użyć liczby całkowitej?
> Przewalutowania i procenty i tak liczy się do złotówki/dolara czy
> grosza/centa, bo liczy się wg przepisów.
Bo dzięki temu można na tych samych liczbach mieć zbliżoną dokładność
zarówno gdy liczysz dolary Zimbabwe (wersja 4, czyli ZWL *) jak
i bitcoiny.
*) 1 ZWL = 1e25 ZWD, przy czym ostatnim banknotem wydrukowanym (nie
wszedł ostatecznie do obiegu) było 1e14 ZWL.
--
Paweł Kierski
n...@p...net
-
35. Data: 2013-11-15 09:07:15
Temat: Re: ułamki (alternatywnie do floata)
Od: firr <p...@g...com>
W dniu czwartek, 14 listopada 2013 20:25:30 UTC+1 użytkownik bartekltg napisał:
> W dniu 2013-11-13 19:29, firr pisze:
>
>
>
> Nie chciałem sam karmić, ale wątek się rozbijał;)
>
>
>
> > juz pare razy sie zastanawialem cze gdyby
>
> > zdefiniowac sobie liczbe jako pare integerow
>
> > licznik i mianownik (najlepiej jako i64
>
> > a nie i32 bo dla 32 bit chyba szybko mogloby
>
> > dochodzic do przepelnienia) to czy takie
>
> > rachunki nie mialyby szansy byc lepszymi
>
> > od floata/double
>
>
>
> Jak już powiedziano, zastąpienie doubla
>
> ułamkiem z intów sensu nie ma.
>
>
>
> Jest to czasem przydatne, ale w specyficznych
>
> zastosowaniach.
>
> Jako ciekawostka, do standardu c++ wleciało coś takiego
>
> http://en.cppreference.com/w/cpp/numeric/ratio
>
>
>
> Za to przydać się może w innych zastosowaniach.
>
>
>
>
>
> > zalety sa np takie
>
> >
>
> > 1) jest to szybkie tj arytmetyka calkowita bez dzielenia w wiekszosci operacji
>
>
>
> Już padło. 1145/2568 + 6848/6127
>
> Ile operacji musisz wykonać? Co najmniej 3 mnożenia i jedno dodawanie,
>
> a wypadałoby jeszcze ułamek skrócić.
>
>
>
> > 2) byloby to (poki sie nie wywali z powodu
>
> > przepelnienia0 scisłe, tj nie traci informacji
>
>
>
> Chyba, że postanowię policzyć ułamek:)
>
> I znów, przydatne, al tylko w specyficznych zastosowaniach.
>
>
>
> > 3) pozwala opoznic dzielenie, floaty wykonuja
>
> > dzielenia z kazdym znakiem / - taka liczba o wiele
>
> > rzadziej np przy wydruku na ekran reprezentacji dziesietnej
>
>
>
> Dzielenie dwóch intów nie jest czasem mniej kosztowne niż
>
> operowanie na typie udającym dwa razy dłuższego inta.
>
> Dwa razy, na licznik i mianownik;)
>
>
>
> >
>
> > wady - nie wiem czy to wogole by dzialalo tj
>
> > boje sie ze szybko by sie przepelniało (ale moze
>
> > dla i64 nie tak szybko?)
>
> >
>
> > ktos moglby rozwinac jakos ten temat i powiedzic
>
> > cos na temat tej opcji?
>
>
>
>
>
> Może jakiś przykład prawie*) z życia. Generowałem sobie kiedyś
>
> węzły i współczynniki do kwadratur gaussa. Nic prostszego,
>
> generujesz wielomiany legandrea, potem szukasz zer - to są węzły.
>
>
>
> Formuła trójczłonowa dla tych wielomianóww jest wymierna.
>
> Mają tylko wymierne współczynniki.
>
> Po wygenerowaniu wieomianów miejsca zerowe i całki
>
> można już liczyć z dowolną precyzją, bez konieczności
>
> przeliczania wszystkiego ze zwiększoną dokładnością.
>
>
>
> *) prawie, bo obecne komputery są na tyle mocne, że
>
> na wielomian potrzebny do wszelkich rozsądnych operacji
>
> wystarczy wziąć pakiet typu gmp i wpisać sporą dokładność,
>
> weryfikując tylko wyniki, czy nie ma szumu:)
>
>
>
> pzdr
>
> bartekltg
haha, swojska glupota prymitywów z tej grupy ;//
- przy tym odpowiedz zupelnie nieciekawa
co do tematow bigintow to sam temat jest ciekawy,
np ciekawe jest czy robic jakas biblioteczke dla
obliczen na bigintach stalego rozmiaru czy 'zmiennego', ale i dalej pare ciakwych
decyzji
i pare ciekawych algorytmow do napisania i uruchomienia, (na przyklad takie skracanie
na prawde jakiegos wielkiego licznika przez wielki mianownik) od paru lat zbieram
sie by to
napisac ale ciagle nawet teraz chyba tego nie napisze bo mam cigale pare wazniejszych
tematów
do przerobienia //len
-
36. Data: 2013-11-15 09:59:39
Temat: Re: ułamki (alternatywnie do floata)
Od: Paweł Kierski <n...@p...net>
W dniu 2013-11-15 08:13, Tomasz Kaczanowski pisze:
> W dniu 2013-11-14 18:11, Ghost pisze:
>>
>> Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
>> news:pkierski.pcp.1384423833@news.chmurka.net...
>>> W dniu 2013-11-14 09:59, Ghost pisze:
>>> [...]
>>>>> Niestety tak przygotowane liczby nie przydają się aż tak bardzo w
>>>>> zastosowaniach finansowych. Bzdurne ograniczenie do 4 liczb po
>>>>> przecinku bierze w łeb, gdy zaczynamy działać na więcej niż jednej
>>>>> walucie, a gdy dojdą do tego procenty, są wręcz szkodliwe... Dlatego
>>>>> nie wiem do czego można stosować przykładowo TCurrency z Delphi nie
>>>>> przydaje się do niczego sensownego, ponad proste działania....
>>>>
>>>> Do przechowywania nadaje sie idealnie, co do obliczen, wystarczy
>>>> minimalnie wieksza precyzja celem wlasciwej realizacji zaokraglen.
>>>
>>> Jaka precyzja jest potrzebna to już z reguły wynika z konkretnych
>>> uregulowań prawnych.
>>
>> No i gdzies masz wiecej niz cztery cyfry po przecinku?
>
> Przy księgowaniu, czy obliczeniach? Bo dałem przykład, powiedzmy, ze
> rozliczenia prowadzisz w Euro, natomiast masz na stanie np forinty,
> dodatkowo powiedzmy, że liczysz od nich oprocentowanie i wyrażać musisz
> zarówno w forintach jak i w euro. Dodatkowo, niektóre papiery
> wartościowe, przynajmniej swojego czasu potrzebowały wyższej precyzji
> niż 4 miejsca po przecinku.
Pisałem obok - sporo par walutowych na Forex ma dokładność do 5 miejsc
po przecinku (w gazetach z reguły podają 4 miejsc).
A jeszcze nie tak dawno ceny ułamkowe towarów rolniczych niektóre
giełdy podawały tradycyjnie w ósmych albo mniejszych częściach. 1/32 to
już pięć miejsc po przecinku, a jak ktoś się uparł na 1/64 - to i sześć.
--
Paweł Kierski
n...@p...net
-
37. Data: 2013-11-15 12:07:00
Temat: Re: ułamki (alternatywnie do floata)
Od: "Ghost" <g...@e...pl>
Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
news:pkierski.pcp.1384499277@news.chmurka.net...
>W dniu 2013-11-14 18:11, Ghost pisze:
>>
>> Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
>> news:pkierski.pcp.1384423833@news.chmurka.net...
>>> W dniu 2013-11-14 09:59, Ghost pisze:
>>> [...]
>>>>> Niestety tak przygotowane liczby nie przydają się aż tak bardzo w
>>>>> zastosowaniach finansowych. Bzdurne ograniczenie do 4 liczb po
>>>>> przecinku bierze w łeb, gdy zaczynamy działać na więcej niż jednej
>>>>> walucie, a gdy dojdą do tego procenty, są wręcz szkodliwe... Dlatego
>>>>> nie wiem do czego można stosować przykładowo TCurrency z Delphi nie
>>>>> przydaje się do niczego sensownego, ponad proste działania....
>>>>
>>>> Do przechowywania nadaje sie idealnie, co do obliczen, wystarczy
>>>> minimalnie wieksza precyzja celem wlasciwej realizacji zaokraglen.
>>>
>>> Jaka precyzja jest potrzebna to już z reguły wynika z konkretnych
>>> uregulowań prawnych.
>>
>> No i gdzies masz wiecej niz cztery cyfry po przecinku?
>
> Notowania Forex
No ale przyznajmy uczciwie, ze to nisza nisz, jesli chodzi o zastosowania
finansowe. Przewazajaca wiekszosc softu finansowego nie potrzebuje takich
dokladnosci.
-
38. Data: 2013-11-15 12:13:42
Temat: Re: ułamki (alternatywnie do floata)
Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl>
W dniu 2013-11-15 12:07, Ghost pisze:
>
> Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
> news:pkierski.pcp.1384499277@news.chmurka.net...
>> W dniu 2013-11-14 18:11, Ghost pisze:
>>>
>>> Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
>>> news:pkierski.pcp.1384423833@news.chmurka.net...
>>>> W dniu 2013-11-14 09:59, Ghost pisze:
>>>> [...]
>>>>>> Niestety tak przygotowane liczby nie przydają się aż tak bardzo w
>>>>>> zastosowaniach finansowych. Bzdurne ograniczenie do 4 liczb po
>>>>>> przecinku bierze w łeb, gdy zaczynamy działać na więcej niż jednej
>>>>>> walucie, a gdy dojdą do tego procenty, są wręcz szkodliwe... Dlatego
>>>>>> nie wiem do czego można stosować przykładowo TCurrency z Delphi nie
>>>>>> przydaje się do niczego sensownego, ponad proste działania....
>>>>>
>>>>> Do przechowywania nadaje sie idealnie, co do obliczen, wystarczy
>>>>> minimalnie wieksza precyzja celem wlasciwej realizacji zaokraglen.
>>>>
>>>> Jaka precyzja jest potrzebna to już z reguły wynika z konkretnych
>>>> uregulowań prawnych.
>>>
>>> No i gdzies masz wiecej niz cztery cyfry po przecinku?
>>
>> Notowania Forex
>
> No ale przyznajmy uczciwie, ze to nisza nisz, jesli chodzi o
> zastosowania finansowe. Przewazajaca wiekszosc softu finansowego nie
> potrzebuje takich dokladnosci.
Dałem przykład z drobnymi elementami rozliczanymi w firmie., tam tez
dokładność obliczeń wartości może być różna....
--
Kaczus
http://kaczus.republika.pl
-
39. Data: 2013-11-15 12:24:03
Temat: Re: ułamki (alternatywnie do floata)
Od: "Ghost" <g...@e...pl>
Użytkownik "Tomasz Kaczanowski" <kaczus@dowyciecia_poczta.onet.pl> napisał w
wiadomości news:528601e5$0$2145$65785112@news.neostrada.pl...
>W dniu 2013-11-15 12:07, Ghost pisze:
>>
>> Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
>> news:pkierski.pcp.1384499277@news.chmurka.net...
>>> W dniu 2013-11-14 18:11, Ghost pisze:
>>>>
>>>> Użytkownik "Paweł Kierski" <n...@p...net> napisał w wiadomości
>>>> news:pkierski.pcp.1384423833@news.chmurka.net...
>>>>> W dniu 2013-11-14 09:59, Ghost pisze:
>>>>> [...]
>>>>>>> Niestety tak przygotowane liczby nie przydają się aż tak bardzo w
>>>>>>> zastosowaniach finansowych. Bzdurne ograniczenie do 4 liczb po
>>>>>>> przecinku bierze w łeb, gdy zaczynamy działać na więcej niż jednej
>>>>>>> walucie, a gdy dojdą do tego procenty, są wręcz szkodliwe... Dlatego
>>>>>>> nie wiem do czego można stosować przykładowo TCurrency z Delphi nie
>>>>>>> przydaje się do niczego sensownego, ponad proste działania....
>>>>>>
>>>>>> Do przechowywania nadaje sie idealnie, co do obliczen, wystarczy
>>>>>> minimalnie wieksza precyzja celem wlasciwej realizacji zaokraglen.
>>>>>
>>>>> Jaka precyzja jest potrzebna to już z reguły wynika z konkretnych
>>>>> uregulowań prawnych.
>>>>
>>>> No i gdzies masz wiecej niz cztery cyfry po przecinku?
>>>
>>> Notowania Forex
>>
>> No ale przyznajmy uczciwie, ze to nisza nisz, jesli chodzi o
>> zastosowania finansowe. Przewazajaca wiekszosc softu finansowego nie
>> potrzebuje takich dokladnosci.
>
> Dałem przykład z drobnymi elementami rozliczanymi w firmie., tam tez
> dokładność obliczeń wartości może być różna....
Ale do przechowywania starczaja 4 cyfry. W wieszkosci softu finansowego.
-
40. Data: 2013-11-15 12:32:47
Temat: Re: ułamki (alternatywnie do floata)
Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl>
W dniu 2013-11-15 12:24, Ghost pisze:
>> Dałem przykład z drobnymi elementami rozliczanymi w firmie., tam tez
>> dokładność obliczeń wartości może być różna....
>
> Ale do przechowywania starczaja 4 cyfry. W wieszkosci softu finansowego.
Ale przechowywanie jest tu najmniej istotną rzeczą (sposób
przechowywania tu jest zależny od bazy danych i zazwyczaj dokładność
bezproblemowo mozna ustawic), istotne są obliczenia.
--
Kaczus
http://kaczus.ppa.pl