Avatar
vlastajuracka:

Č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
sunspinx
Člen
Avatar
sunspinx:
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  -1 17.10.2015 10:40
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na vlastajuracka
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
sunspinx
Člen
Avatar
Odpovídá na sunspinx
sunspinx:

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
Avatar
Odpovídá na vlastajuracka
Atrament:

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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět 17.10.2015 10:48
Avatar
vlastajuracka:

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.