> Stojim za tim, ze se chyba na trinactem miste v 99% pripadu ignorovat 
> neda. Napr. pri formatovani pomoci sprintf jak je uvedeno vyse.

Opak je pravdou



> Konkretne cislo 39.9 / 10 se podle JAVA rovna 3.98999999998 takze ve 
> vyslednem formatovani se zobrazi 3.99 (teda pokdu zaokrouhluje, 
> to jsem nezkousel jinak by to vyslo 3.98)
> Kdyz ale provedete 39.9 * 0.1 tak podle JAVA dostanete 4.00000000007 
> takze ve vyslednem formatovani ziskate 4.00

Jak kde - mně vychází: 
39.9 * 0.1 = 3.99
39.9 + 0.1 = 40.0
V programu:
    public static void test() {
        System.out.println("\f");
        double a = 39.9;
        double b = 0.1;
        System.out.println( a + " * " + b + " = " + (a*b) );
        System.out.println( a + " + " + b + " = " + (a+b) );
    }

Díval jste se opravdu dobře na to, co zadáváte?



> Hle ona chyba se z trinacte pozice prenesla hned na treti. 

Jak jsem byl ukázal, chyba naopak nebyla vůbec žádná. Nicméně i kdyby byla 
taková, jak
jste psal, tak se v žádnom případě nepřesunula na třetí pozici, ale byla na 
jedenácté,
protože ten výsledek byl urrčitě výsledek nějakého sčítání a ne násobení. Leda 
byste měl
nějaký nabouraný koprocesor.



> Je vysoka pravdepodobnost ze se vyskytnou pripady kdy se 
> takova chyba prenese dokonce na pozici druhou. 

Když program napíšu blbě, tak opravdu ano.



> Btw. nevim ktere jazyky pocitate za vetsinu. Delphi a C# 
> temito neduhy netrpi.

Trpí jimi všechny programovací jazyky, protože všechny jazyky používají v 
počítači
stejný koprocesor, který tyhle výpočty provádí. Jediný rozdíl je v tom, jakou 
používáte
proceduru pro tisk - pokud používáte v jednom jazyku zaokrouhlovací proceduru a 
v druhém
ne, nemůžete jejich výsledky porovnávat. 

Začněte v Dephi tisknout s přesností na 15 desetinných míst a budete dostávat 
stejné
výsledky jako u prinln v Javě. Budete-li naopak používat formátovaný výstup v 
Javě,
vůbec takovéte drobné odchylky nezaznamenáte.

Používejte printf a porovnávejte hodnoty korektně a máte po starostech.



-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.375 / Virus Database: 268.0.0/267 - Release Date: 22.02.06 st
 

Odpovedet emailem