Diskuze: Uživatelem zadaný počet des. míst
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= 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.
String s = String.valueOf(vysledek);
s = s.substring(0 , s.indexOf(".")) + s.substring(s.indexOf(".") , s.indexOf(".")+c+1);
Asi takto
Samozrejme tam môže nastať výnimka tak to treba ošetriť blokom Try a Catch
alebo nejakou podmienkou
Můžeš použít DecimalFormat. Když máš v 'c' počet destinných míst, která chceš zobrazit tak asi takhle:
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(c);
tím máš vytvořenou instanci DecimalFormat, s nastaveným požadovaným maximem desetinných míst,kterým pak můžeš formátovat 'vysledek' takto:
System.out.println("Vysledek je: " + df.format(vysledek));
Tohle mi ne úplně korektně funguje
mám tedy tento zdroják:
Scanner sc = new Scanner(System.in);
sc.useLocale(Locale.US);
System.out.println("Vyber operace (1-soucet, 2-rozdil, 3-soucin, 4-podil)" );
char operator = sc.nextLine().charAt(0);
DecimalFormat df = new DecimalFormat();
boolean error = false;
double vysledek = 0;
double b = 0;
double a = 0;
int c = 0;
switch (operator) {
case '1':
System.out.print("Zadej scitanec: ");
a = sc.nextDouble();
System.out.print("Zadej scitanec: ");
b = sc.nextDouble();
System.out.print("Zadej pocet desetinnych mist: ");
c = sc.nextInt();
vysledek = a + b;
df.setMaximumFractionDigits(c);
System.out.println("Vysledek je: " + df.format(vysledek));
break;
A výpis z konzole -
Vyber operace (1-soucet, 2-rozdil, 3-soucin, 4-podil)
1
Zadej scitanec: 2.0
Zadej scitanec: 5.11
Zadej pocet desetinnych mist: 0
Vysledek je: 7
= 7.11
Nějak nechápu, proč mi to poté ještě vyhodí "= 7.11"
Tak to záleží na tom, co tam potom ještě kde vypisuješ Samo se to určitě nevypisuje
Už jsem na to přišel
Akorát jak bych to udělal, pokud bych opravdu chtěl při sečtení např.: 5 + 2 aby mi to vrátilo za desetinnou čárkou nuly (pokud by uživatel zadal, aby tam byl počet desetinných míst více jak 0, ale sčítal by celá čísla)
Zobrazeno 11 zpráv z 11.