Čísla
Desetinná čísla pro celá čísla jsme používali typ int pro desetinná čísla používáme typ double analogicky pro konverzi ze stringu na double se místo Convert.ToInt32 používá Convert.ToDouble
Př. program, který z ceny a sazby DPH vypočítá cenu bez DPH a kolik dělá DPH. Celkem bez daně 100 % Cena celkem 119 % Daň 19 %
Čísla jako objekty desetinná čísla se chovají jako objekty třídy Double objekty jsou např. i celá čísla Int a řetězce String pro konverzi pro zobrazení výsledku lze použít buď volání metody ToString třídy Convert (Convert.ToString) nebo použít metodu ToString třídy Double např. DPH.ToString ToString třídy Double umožňuje použít i tzv. formátovací řetězec např. F2 zařídí formátování na 2 des. místa
private void tlačítkovypočti_click(object sender, EventArgs e) { try { // Převod údajů z textových polí do číselné formy double cena = Convert.ToDouble(poleCena.Text); double sazba = Convert.ToDouble(poleSazba.Text); // Výpočty double dělitel = 1 + sazba / 100; double cenabezdph = cena / dělitel; double DPH = cena - cenabezdph; } // Zobrazení výsledků na dvě desetinná místa polebezdph.text = cenabezdph.tostring("f2"); poledph.text = DPH.ToString("F2"); } catch { MessageBox.Show("Zadán nekorektní údaj!"); }
Výpočty klasická sada operátorů +,, *, / násobení a dělení vyšší priorita než + a závorky pouze kulaté mocnina Math.Pow např. 10 x 3 Math.Pow(10, x-3) druhá odmocnina Math.Sqrt n-tá odmocnina se dělá jako umocnění na 1/n
Math.PI Math.Sin Math.Cos Math.Tan Math.Asin Math.Atan Math.Log Math.Abs 3,1415927 sin cos tg arc sin arc tg log absolutní hodnota goniometrické funkce počítají s radiány
Celočíselné dělení Pro dvě celá čísla funguje lomítko jako operátor celočíselného dělení. Pokud jsou čísla desetinná, funguje jako normální dělení. Pokud jsou proměnné, se kterými provádíme dělení, desetinná čísla, funguje dělení normálně. Pokud chceme, aby fungovalo lomítko jako normální dělení i pro celá čísla, je potřeba je zapsat jako desetiná buď pomocí desetinné tečky nebo symbolu d. 1/4 by počítač vyhodnotil jako nulu 1.0/4.0 by vyhodnotil jako 0.25 1d/4d by vyhodnotil jako 0.25
Náhodná čísla při startu programu se musí vytvořit instance třídy Random Random náhoda = new Random(); pokaždé, když chceme náhodné číslo, zavoláme metodu Next int náhodnéčíslo = náhoda.next(min, max + 1);
Př. hrací kostka public partial class oknoprogramu : Form { Random kostka = new Random(); public oknoprogramu() { InitializeComponent(); } } private void tlačítkohoď_click(object sender, EventArgs e) { int číslo = kostka.next(1, 6+1); polečíslo.text = číslo.tostring(); }
Přehled číselných typů Druh Název typu Alternativní název Rozsah hodnot Přesnost Celá čísla byte Byte 0 až 255 8 Desetinná čísla Desetinná čísla s přesnou reprezentací sbyte SByte -128 až 127 8 ushort UInt16 0 až 65535 16 short Int16-32768 až 32767 uint UInt32 0 až 4 miliardy int Int32 2 miliardy 32 ulong UInt64 0 až 18 trilionů long Int64 9 trilionů 64 float Single 10 38 7 míst 32 double Double 10 308 15 míst 64 decimal Decimal 10 28 28 míst 128 16 32 64 Počet bitů
Konverze číselných typů menší do větších se konvertují automaticky např. int do double double x = 4; větší do menších je potřeba zkonvertovat ručně, dojde ke ztrátě přesnosti int počet = (int) 4.7; float y = (float) (x + 1);
Př. program na normální a celočíselné dělení. Tip: zbytek po celočíselném dělení získáte operátorem %
Př. Úročení Výsledná částka po n letech úročení vkladu v při úrokové sazbě p procent se vypočte výsledná čáska = v. (1 + p/100) n
Př. čtverec náhodné barvy
Př. Meziroční růst pole Následující rok je pouze pro čtení a vyplňuje se samo po zadání výchozího roku
Př. grafická házecí kostka obrázky jednotlivých hodů kostek najdete na adrese K:\!!! Informatika!!!\Septima\kostka
Př. vyzkoušejte si ovládací prvek číselník při změně nastává událost ValueChanged vlastnosti Minimum, Maximum a Increment určují chování vlastnost Value je typu Decimal, takže i tak je nutné volat Convert.ToInt32