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!
Avatar
vlastajuracka:16.10.2015 23:58

Čaues lidi mam tkovej dotaz potřebuju abych proměnnou typu double když bude za desetinou čárkou 0 tk aby mi to nevypsalo 3.0 ale jenom 3 a prosím nepište mi tu přetypování.. potřeboval bych nějakou metodu nebo podminku která mi zjistí jestli ja za desetinou čárkou 0 snad to existuje. Díky moc :)

 
Odpovědět
16.10.2015 23:58
Avatar
Vladislav Domin:17.10.2015 10:40
Scanner in = new Scanner(System.in);
       try {
           System.out.print("Zadajte cislo: ");

           double sNulou = Double.parseDouble(in.nextLine());
           int bezNuly = (int) sNulou;

           if(sNulou / bezNuly == 1) System.out.println(bezNuly); // Zistujeme, ci je za desatinnou ciarkov cislo 0, ak hej vypise cislo bez nuly
           else System.out.println(sNulou); // V pripade, ze za desatinnou ciarkou je cislo ine ako 0
       }
       catch(IllegalArgumentException e) {
           System.out.println("Zadat mozte len cislo!");
       }
 
Nahoru Odpovědět
17.10.2015 10:40
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na vlastajuracka
Honza Bittner:17.10.2015 10:40

Budeš možná chtít nastavit formát čísla http://stackoverflow.com/…6303/3281252 Je to i jednodušší na používání než převádět číslo na string a pak pomocí nějakého výrazu mazat nuly.

A nebo můžeš také zaokrouhlovat (nemám ověřeno):

round(200.3456, _počet desetinných míst_);
round(200.3456, 0); // by mělo vypsat 200
Nahoru Odpovědět
17.10.2015 10:40
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na Vladislav Domin
Vladislav Domin:17.10.2015 10:41

Toto bolo prvé, čo ma napadlo, som taktiež začiatočník, tak to ber do úvahy, snaď je to to, čo si potreboval.

 
Nahoru Odpovědět
17.10.2015 10:41
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovídá na vlastajuracka
Atrament:17.10.2015 10:48

Tak buď můžeš 'matematicky' ověřit jestli jde o celé číslo

if (number % 1 == 0) {
//je to celé číslo
}
else {
//není to celé číslo
}

a podle toho pak reagovat a nebo můžeš vzít to číslo a vypsat ho formátovaně:

DecimalFormat df = new DecimalFormat("#.##"); //vytvoří decimal formater, který bude formátovat na dvě desetinná místa, přičemž pokud by byly za desetinnou čárkou jenom nuly tak je vynechá
System.out.println(df.format(number));

DecimalFormat zaokrouhluje, takže pokud bys měl to číslo třeba 3.0000051458, tak by i tak vypsal jenom 3, záleží na tobě jestli ti to tak stačí nebo ne.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
17.10.2015 10:48
Avatar
vlastajuracka:17.10.2015 12:16

Jee ste super kluci diky moc :)

 
Nahoru Odpovědět
17.10.2015 12:16
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 6 zpráv z 6.