Posted By: Jovo () on 'CZprogram'
Title: Ad: Problemy s floaty
Date: Wed May 8 14:41:38 2002
Ahoj.
Ja uz jsem tu jednou zadal o pomoc s podtekanim, zaokrouhlovanim a podobne.
Pokud mas specialni pripad, coz je pouziti napriklad casu, meny (penez) a
podobne, tak nelez do float/decimal/extended.
Napis si vlastni objekt, ktery bude mit neco jako
int koruny, halire;
Pokud potrebujes ciste non-object veci, pak neni jina moznost nez to
nahradit typedef struct + spoustou samostatnych funkci. Na druhou stranu
pokud to udelas bez objektu, pak se objekt da vytvorit jedna basen :-) Neco
podobneho jsem uz 2x delal.
Ja vzdycky, kdyz mam nejaky problem, tak se ho snazim ze svych zdrojaku
vyhnat tim, ze ho 'vyvezu' mimo (unita, objekt, knihovna). To ma tu vyhodu,
ze jakmile se objevi nejaky problem, pak to opravujes jen na jednom miste.
Napriklad v tvem pripade by ti nemusel typ INT stacit. To se da vyresit
pridanim dalsiho INTu, treba ve stylu
int nad_miliardy, miliardy, miliony, tisice, halire, setiny_haliru;
No a pokud te ani tohle neuspokoji (nejaky blbecek prijde s tim, ze chce
triliony :), pak doporucuji prejit na aritmetiku reprezentovanou stringy.
Treba 123456 nebude int ale char[]. Sice se aritmetika strasne zpomali a
cisla zaberou obrovsky prostor, ale navic ziskas jednoduchou zpracovatelnost
(muzes na ne postvat scripty - perl a podobne), absolutni kontrolu a
nemoznost podteceni/preteceni.
Existuji implementace desetinnych cisel pres celociselne typy - onehda jsem
si prohlizel zdrojaky Allegra (http://www.talula.demon.co.uk/) a pokud hledas
inspiraci nebo zaklady implementace, pak se mrkni tam.
Jovo.
PS: Zkusil jsem hledat nejakou knihovnu, co ma string-based aritmetiku, ale
ani po 10 minutach googleovani jsem nic pouzitelneho nenasel. Nevite nekdo
kde by se podobny soft dal stahnout? Zrovna ho nepotrebuju, ale jeden
nikdy nevi :-)