Posted By: dzemen () on 'CZprogram'
Title: Zaokrouhlovani cisla typu Extended
Date: Mon May 6 13:22:20 2002
Cau!
Co rikate nasledujicimu:
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