Diskuze: Odstranění desetinné čárky
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
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!");
}
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
Toto bolo prvé, čo ma napadlo, som taktiež začiatočník, tak to ber do úvahy, snaď je to to, čo si potreboval.
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.
Jee ste super kluci diky moc
Zobrazeno 6 zpráv z 6.