Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Java dělení double

Aktivity
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:2.3.2016 14:56

Mám velmi primitivní dotaz. Proč tato funkce vrací 0 a ne 0,33333333333­33333333333 ?

public static String cislo(){

        double cislo = 0;

        cislo += (1/3);

        return String.valueOf(cislo);
    }

Jak to opravit? Děkuji za odpověď

 
Odpovědět
2.3.2016 14:56
Avatar
Odpovídá na martinkobelka
Neaktivní uživatel:2.3.2016 15:12

Dělení v Javě (i v C#) je vždy celočíselné, takže buď cislo += 1/3.0; nebo cislo += 1.0/3;. Prostě alespoň jeden člen musí být double :-)

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
2.3.2016 15:12
Neaktivní uživatelský účet
Avatar
Silvinios
Tvůrce
Avatar
Odpovídá na martinkobelka
Silvinios:3.3.2016 19:49

1 i 3 jsou tzv. číselné literály typu int. Operace dělení se provede v celých číslech, tudíž je výsledek 0.

K zápisu čísel typu double se používá znak "d".

cislo += (1d/3);
 
Nahoru Odpovědět
3.3.2016 19:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.