Diskuze: Java dělení double

Java Java Java dělení double

Aktivity (1)
Avatar
martinkobelka
Redaktor
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
Lukas C#
Redaktor
Avatar
Odpovídá na martinkobelka
Lukas C#: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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět 2.3.2016 15:12
Avatar
Silvinios
Redaktor
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.