Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se seznámíte s číselnými typy v jazyce C#. Napíšete malé množství kódu, pak tento kód zkompilujete a spustíte. Tento kurz obsahuje řadu lekcí, které zkoumá čísla a matematické operace v jazyce C#. Tyto lekce vás naučí základy jazyka C#.
Spropitné
Když blok fragmentu kódu obsahuje tlačítko Spustit, otevře se interaktivní okno nebo nahradí stávající kód v interaktivním okně. Pokud fragment kódu neobsahuje tlačítko Spustit, můžete kód zkopírovat a přidat ho do aktuálního interaktivního okna.
Prozkoumání celočíselné matematiky
V interaktivním okně spusťte následující kód.
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
Předchozí kód ukazuje základní matematické operace s celými čísly. Typ int představuje celé číslo , kladné nebo záporné celé číslo. K přidání použijete symbol +. Mezi další běžné matematické operace pro celá čísla patří:
-
-pro odčítání -
*pro násobení -
/pro dělení
Začněte prozkoumáním těchto různých operací. Upravte třetí řádek a vyzkoušejte všechny tyto operace. Pokud chcete například zkusit odečítání, nahraďte + za -, jak je znázorněno na následujícím řádku:
int c = a - b;
Zkuste to. Vyberte tlačítko Spustit. Pak zkuste násobit, * a dělení, /. Pokud chcete, můžete experimentovat také napsáním několika matematických operací na stejném řádku.
Spropitné
Při zkoumání jazyka C# (nebo libovolného programovacího jazyka) uděláte chyby při psaní kódu. Kompilátor tyto chyby najde a oznámí vám je. Pokud výstup obsahuje chybové zprávy, podívejte se pozorně na ukázkový kód a kód v interaktivním okně a podívejte se, co opravit. Toto cvičení vám pomůže naučit se strukturu kódu jazyka C#.
Prozkoumání pořadí operací
Jazyk C# definuje prioritu různých matematických operací s pravidly konzistentními s pravidly, která jste se naučili v matematice. Násobení a dělení mají přednost před sčítáním a odčítáním. Prozkoumejte to spuštěním následujícího kódu v interaktivním okně:
int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);
Výstup ukazuje, že násobení se provádí před sčítáním.
Jiné pořadí operací můžete vynutit přidáním závorek kolem operace nebo operací, které chcete provést jako první. Do interaktivního okna přidejte následující řádky:
d = (a + b) * c;
Console.WriteLine(d);
Prozkoumejte další možnosti kombinováním mnoha různých operací. Čtvrtý řádek v předchozím kódu nahraďte následujícím kódem:
d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);
Můžete si všimnout zajímavého chování u celých čísel. Celočíselné dělení vždy vytvoří celočíselnou hodnotu, i když byste očekávali, že výsledek bude obsahovat desetinnou nebo zlomkovou část.
Vyzkoušejte následující kód:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
Prozkoumání celočíselné přesnosti a omezení
Ta poslední ukázka vám ukázala, že dělení celých čísel zkracuje výsledek. Zbytek můžete získat pomocí operátoru zbytku , znak %:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");
Celočíselné typy jazyka C# se liší od matematických celých čísel jedním způsobem: typ int má minimální a maximální limity. Vyzkoušejte následující kód a podívejte se na tyto limity:
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");
Pokud výpočet vytvoří hodnotu, která překročí tyto limity, dochází k podmínce podtečení nebo přetečení. Zdá se, že odpověď se rozpíná od jednoho okraje k druhému. Příklad zobrazíte tak, že do interaktivního okna přidáte tyto dva řádky:
int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");
Všimněte si, že odpověď je velmi blízko minimálnímu (zápornému) celočíselnému číslu. Je to stejné jako min + 2. Operace sčítání přetekla povolené hodnoty pro celá čísla. Odpověď je velké záporné číslo, protože přetečení "přeskakuje" z největší možné celočíselné hodnoty na nejmenší.
Existují i jiné číselné typy s různými omezeními a přesností, které byste použili, když typ int nevyhovuje vašim potřebám. Pojďme se podrobněji podívat na tyto typy čísel.
Práce s dvojitým typem
Číselný typ double představuje číslo s plovoucí desetinnou čárkou s dvojitou přesností. Tyto termíny můžou být pro vás nové.
číslo s plovoucí desetinnou čárkou je užitečné pro reprezentaci necelých čísel, která mohou být velká nebo malá svou velikostí.
Dvojitá přesnost je relativní termín, který popisuje počet binárních číslic použitých k uložení hodnoty.
čísla s dvojitou přesností mají dvakrát tolik binárních číslic co čísla s jednoduchou přesností. V moderních počítačích je běžnější používat dvojitou přesnost než jedno číslo přesnosti.
čísla s jednou přesností jsou deklarována pomocí klíčového slova float. Pojďme se podívat. Spusťte následující kód a podívejte se na výsledek:
double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);
Všimněte si, že odpověď obsahuje desetinnou část podílu. Zkuste trochu složitější výraz s typem double. Můžete použít následující hodnoty nebo nahradit jiná čísla:
double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);
Rozsah dvojité hodnoty je větší než celočíselné hodnoty. V interaktivním okně vyzkoušejte následující kód:
double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");
Tyto hodnoty jsou vytištěny ve vědeckém zápisu. Číslo před E je significand. Číslo za E je exponent představující mocninu čísla 10.
Stejně jako desetinná čísla v matematice, i datový typ double v jazyce C# může mít chyby zaokrouhlení. Vyzkoušejte tento kód:
double third = 1.0 / 3.0;
Console.WriteLine(third);
Víte, že 0.3 je 3/10 a není úplně stejný jako 1/3. Podobně 0.33 je 33/100. Tato hodnota je blíže 1/3, ale stále není přesná. Bez ohledu na to, kolik desetinných míst přidáte, zůstane chyba zaokrouhlení.
výzva
Zkuste jiné výpočty s velkými čísly, malými čísly, násobením a dělením pomocí typu double. Zkuste složitější výpočty.
Práce s desetinnými typy
Existuje ještě jeden typ, který se naučíte: typ decimal. Typ decimal má menší rozsah, ale větší přesnost než double. Pojďme se podívat:
decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");
Všimněte si, že rozsah je menší než typ double. Větší přesnost s desetinným typem můžete zobrazit pomocí následujícího kódu:
double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);
decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);
Všimněte si, že matematika používající typ desetinné čárky má vpravo od desetinné čárky více číslic.
Přípona M čísel je způsob, jakým označujete, že konstanta by měla používat typ decimal. V opačném případě kompilátor předpokládá typ double.
Poznámka
Písmeno M bylo vybráno jako nejvýraznější písmeno mezi klíčovými slovy double a decimal.
výzva
Napište kód, který vypočítá oblast kruhu, jehož poloměr je 2,50 centimetru. Nezapomeňte, že oblast kruhu je poloměr čtvercový násobený PI. Jeden tip: .NET obsahuje konstantu pro PI, Math.PI, kterou můžete pro tuto hodnotu použít.
Math.PI, stejně jako všechny konstanty deklarované v oboru názvů System.Math, je hodnota double. Z tohoto důvodu byste pro tuto výzvu měli místo double hodnot použít decimal.
Měli byste získat odpověď mezi 19 a 20.
Po vyzkoušení otevřete podokno podrobností a podívejte se, jak jste to udělali:
double radius = 2.50;
double area = Math.PI * radius * radius;
Console.WriteLine(area);
Zkuste některé další vzorce, pokud chcete.
Dokončili jste interaktivní kurz "Čísla v jazyce C#". Výběrem odkazu Řazené dvojice a typy můžete zahájit další interaktivní kurz nebo navštívit web .NET, stáhnout si .NET SDK, vytvořit projekt na svém počítači a pokračovat v programování. V části Další kroky se vrátíte k těmto kurzům.
Další informace o číslech v jazyce C# najdete v následujících článcích: