Posted By: pivson (Pijte pivo, je zdrave !!!) on 'CZprogram' Title: Re: Zaokrouhlovani cisla typu Extendedyn Date: Fri May 10 15:26:23 2002 > Diky, tohle jsem ani neznal Chlape, jak teda muzes diskutovat o floatech :) ? To je skutecne zaklad. Doufam ze jsem it zhruba osvetlil, PROC tu ta konstanta je, a proc ma hodnotu takovou, jakou ma. > Byla rec o pascalu. A ? Ten to akorat dela za tebe. Vetsina kompieru cecka ma volbu neco ve smyslu 'flaot consisntency'. A ta rika, jesli ma VKLADAT do tvyho kodu ZCELA automaticky if (a=b) -> if (abs(a-b)<EPSILON) a podobne. Packal tohle dela snad porad, nevim jesli se to da vubec vypnout. Pokud napises kod: a=5; b=(float)7-float(2); (predpokladam, ze to kompiler nespocita, ale bude to provadet) Tak se ulozi petka do floatu. Zde VZNIKNE CHYBA. To same pro 7 a 2. Ty se odectou a vysledek se ulozi. Jenze se neodecitalo 7 a 2 ale 6.999999999blabla a 2.00000000blable (treba). Tudiz, kdyz to porovnas s 5kou (resp. 4.9999999999....) tak to NEBUDE rovno. Prave protoze FPU vyjadruje cisla JINAK. Musis je od sebe odecist a zjistit rozdil. Jeli rozdil mensi, nez urcita hodnota, pak nemuzes s jistotou rici, zdali jsou si rovny, protoze jejich 'puvod' je v JINY CISELNY SOUSTAVE. Pokud bys jako 'zdroj' cisel dodaval cisla, ktery lzde PRESNE vyjadriv v teto soustave, pak by chyba nenastavala zadna (az na zaokrouhlovani, ale to je uplne JINA vec). > if (abs(a-b) < FLT_EPSILON) then ... > nefungovalo, pokud budu mit nejaky pekny exponent. Nebo jestli ano, tak se > strasne stydim, najdu si skripta programovani a znovu si prectu zaklady, > abych Ale fungovalo.... Najdi si skripta, zalez do kouta a styd se :) STaci kdyz se poodivas na specifikaci a ulozeni flaotu i Intela, nemusis louskat cely skripta. Jak by bylo krasny kdyby float byl ulozenej ve formatu jako mi piseme. To by se krasne tisknul/cetl :o) Pokud chces presne zobrazit float na obrazovce, tak kod na zobrazeni neni 2x jednoduchej. Ani omylem. To protoze nemuzes zistat binarni podobu exponentu. Takze za printf("%f") je celkem dost radku kodu. Hodne knihoven to resi nepresnou cestou... A jeste jedna vec na kterou muzes selkym rozumem prijit. 64 bit real, ma na exponentcharakteristiku - on to neni exponent :) vyhrazeno 15 bitu. To odpovida rozsahu neco okolo +-10^32768... Nicmene, realny rozsah je +-10^308. Otazka tydne: Proc ? :) Zkus si odpovedet :o))))) A druha otazka: proc je normalizovany cislo 0.5-1, kdyz my mame 0-1 ? :))) ? Pivson I a posledni, z bozi vule pivar A co budou delat cesi ??? Deme na pivo !