Posted By: dzemen () on 'CZprogram'
Title:     Re: Zaokrouhlovani cisla typu Extended
Date:      Tue May  7 07:51:49 2002

> Dzemene, ty jsi nechodil na Kleckovou ?
>                    MK

Cau Zube!

Ale chodil. Me slo spis o to, ze 2 pocitace delaji tu samou vec jednou dobre a
podruhy blbe. ;-((
Samozrejme vim, ze i extended neumi nekdy bejt uplne presnej. Ale proc na
jednom pocitaci to cislo jde a na druhym ne?
Nejvetsi zrada je v tom, ze nektere pocitace tady ve firme to cislo 824.5
zobrazovaly spatne jako 824.4999999 a ted to uz delaji dobre a zaokrouhluji
dobre. Konkretne jeden z nich je muj. ;-)
A je sice hezky, ze muzu porovnavat abs(a-b)<EPSILON, kde EPSILON je nejake
hodne male (1E-07) cislo, ale ja nepotrebuju porovnavat, potrebuju to cislo
spravne ZAKROUHLIT !!!
A opravdu chutovka je, kdyz vyjede na podniku ta sama sestava, z toho samyho
programu, na cislech v radove desitkach milionu Kc na 2 pocitacich s rozdilem
treba 5 haliru. ;-((((
Pouzivat pro menu cela cisla s posunutou desetinnou teckou (tj. treba 100x
vetsi, nez je skutecnost a pri praci se pak deli 100) je sice reseni (i kdyz
nakonec se stejne pracuje s float cislem, ktere se zaokrouhluje), ale ja uz
mam existujici data. ;-((

Dzemen

P.S.: A pasta je zubni, ne zbuni. ;-) Oprav si signaturu.     

> > Cau!
> > 
> > 1) 1. pocitac, Celeron 333MHz, Windows 98 Second Edition
> > 
> > A := 824.5
> > Writeln(A) vypise 824.49999999.... {OK, to bych jeste zkousnul}
> > A := A + 0.000001;
> > Writeln(A) vypise 824.500001 {Nevim, jestli je pocet nul spravne, ale
> proste
> >                               je to pres polovinu}
> > Str(A:1:2, S);
> > Val(S, A, Code);
> > {Ted by melo byt v A cislo 824.5, protoze jsem "oriznul tu jednicku"}
> > Writeln(A) vypise 824.49999999 ;-(((
> > Takze trik s prictenim/odectenim "smeti" je na ......
> > 
> > 2) 2. pocitac, Celeron 333MHz, Windows NT 4.0 SP 6a
> > 
> > - vsechno naprosto v pohode, tj. po prirazeni A := 824.5 a Writeln(A) ji 
> > proste na tech 824.5 vypise. Veskere dalsi operace "se smetim" take
> > probehnou 
> > tak, jak to je spravne.... 
> > 
> > 
> > Program je napsan Delphi 5.0.
> > A dela to same i s jinymi cisly, napr. 4346.035 (zobrazuje jako
> > 4346.03499999).
> > Chapal bych to, kdyby to bylo na obou pocitacich stejne dobre/spatne, ale 
> > program je ten samej a procesor taky, tak kde je chyba? ;-((
> > 
> > 
> > Dzemen 

Search the boards