Diskuze: Java dělení double

Java Java Java dělení double

Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:

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. března 14:56
Avatar
Lukas C#
Redaktor
Avatar
Odpovídá na martinkobelka
Lukas C#:

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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět 2. března 15:12
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na martinkobelka
Silvinios:

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. března 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.