NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Počítání v double

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
vlastajuracka:18.4.2017 21:40

Zdarec lidi mám takovej dotaz :D Jaktože mi tento příklad:

double a = 1/3;

vyjde nula ? Chápu že spolu dělim dva inty ale přece jenom to ukládam do double, tak proč se to nezaokrouhlí ? Díky moc za vysvětlení

 
Odpovědět
18.4.2017 21:40
Avatar
Pjanus
Člen
Avatar
Odpovídá na vlastajuracka
Pjanus:18.4.2017 21:46

Protože program neřeší do čeho ukládáš - bere to postupně. Takže se nejdřív podívá na operaci a vidí že máš dva inty neřeší zbytek a vypočítá to. Až potom se podívá co s tím vlastně děláš - ukládáš. Tudíž výsledek vezme přetypuje ho do double a ten pak uloží.

Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět
18.4.2017 21:46
Avatar
Odpovídá na vlastajuracka
Petr Štechmüller:18.4.2017 21:47

Ahoj, už se to tu řešilo několikrát. Musíš alespoň jedno číslo (dělenec, nebo dělitel) přetypovat na double.

Nahoru Odpovědět
18.4.2017 21:47
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na vlastajuracka
gcx11:18.4.2017 21:49

Ahoj, napřed se vyhodnotí výraz. Konstanty jsou defaultně považovány za typ integer, takže vydělíš 1/3, což vyjde nula, protože se dva integery mezi sebou dělí celočíselně. A tu nulu poté uložíš do double. Pokud chceš, aby Java použila na dělení double, musíš tam přidat suffix "d" nebo "D".

double a = 1/3d;
 
Nahoru Odpovědět
18.4.2017 21:49
Avatar
Odpovídá na gcx11
vlastajuracka:18.4.2017 22:04

Super všem vám moc děkuju :) Kdyby to šlo dam řešení všem :D

 
Nahoru Odpovědět
18.4.2017 22:04
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 5 zpráv z 5.