Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
David Liška
Člen
Avatar
David Liška:15.5.2016 2:51

Ahoj, chtěl bych se zeptat, jak docílím toho, abych do exponentu dostal desetinné číslo. Např. když číslo 5 umocním na 2,5, vyjde mi místo 55,90 --> 125. Děkuji za radu.

Console.WriteLine("Zadejte základ mocniny:");
Console.WriteLine();
double zaklad = double.Parse(Console.ReadLine());
Console.WriteLine();
Console.WriteLine("Zadejte exponent:");
Console.WriteLine();
double exponent = double.Parse(Console.ReadLine());

double vysledek = zaklad;

for (float i = 0; i < (exponent - 1); i++)
    vysledek = vysledek * zaklad;
if (exponent == 0)
    vysledek = 1;

Console.WriteLine();
Console.WriteLine("Výsledek: {0}", vysledek);

Console.ReadKey();
Editováno 15.5.2016 2:53
 
Odpovědět
15.5.2016 2:51
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na David Liška
Ondřej Štorc:15.5.2016 7:33

Ahoj, máš tam blbě ten for:

  1. projetí: int i = 0; 0 < (2,5-1), OK
  2. projetí: int i = 1; 1 < (2,5-1), OK
  3. projetí: int i = 2; 2 < (2.5-1), Nic se neprovede

Jinak ani ten tvůj kód s mocněním pomocí exponentu s desetinou čárkou nepodporuje. Proč radši nevyžiješ třeba Mat.Pow(), udělá to co chceš, a budeš mít jistotu že správně.

Editováno 15.5.2016 7:33
Nahoru Odpovědět
15.5.2016 7:33
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
David Liška
Člen
Avatar
David Liška:15.5.2016 12:38

Dal jsem na tvou radu a použil metodu Math.Pow(). Teď to funguje parádně. Díky moc.

Console.WriteLine("Zadejte základ mocniny:");
Console.WriteLine();
double zaklad = double.Parse(Console.ReadLine());
Console.WriteLine();
Console.WriteLine("Zadejte exponent:");
Console.WriteLine();
double exponent = double.Parse(Console.ReadLine());
double vysledek = 0;

vysledek = Math.Pow(zaklad, exponent);
if (exponent == 0)
vysledek = 1;

Console.WriteLine();
Console.WriteLine("Výsledek: {0}", vysledek);

Console.ReadKey();
Editováno 15.5.2016 12:40
 
Nahoru Odpovědět
15.5.2016 12:38
Avatar
hj.masek
Člen
Avatar
hj.masek:15.5.2016 14:27

Jen takovou malou připomínku nevolej zbytečně metodu Math.Pow pokud víš, že je exponent 0 :) nastavuješ výsledek až po zbytečném volání. Mám na mysli něco takového

double zaklad = 2;
double exponent = 3;
double vysledek = (exponent==0)?1:Math.Pow(zaklad,exponent);
Console.WriteLine();
Console.WriteLine("Výsledek: {0}", vysledek);
 
Nahoru Odpovědět
15.5.2016 14:27
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 4 zpráv z 4.