Manipulace s integrálními čísly a čísly s plovoucí desetinou čárkou
V tomto kurzu se seznámíte s číselnými typy v jazyce C# interaktivně pomocí prohlížeče. Napíšete C# a zobrazíte výsledky kompilace a spuštění kódu. Obsahuje sérii lekcí, které se zabývají čísly a matematickými operacemi v C#. V těchto lekcích se seznámíte se základy jazyka C#.
Tip
Pokud chcete vložit fragment kódu do detailního režimu, měli byste použít klávesovou zkratku (Ctrl + v nebo cmd + v).
Seznámení s matematikou celých čísel
Spusťte v interaktivním okně následující kód. Vyberte tlačítko Pro zadání detailního režimu . Potom do interaktivního okna zadejte následující blok kódu a vyberte Spustit:
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
Pokud pracujete ve svém prostředí, měli byste místo toho postupovat podle pokynů pro místní verzi .
Viděli jste jednu ze základních matematických operací s celými čísly. Typ int
představuje kladné nebo záporné celé číslo. Pro sčítání se používá symbol +
. K dalším běžným matematickým operacím s celými čísly patří tyto:
-
pro odčítání*
pro násobení/
pro dělení
Tip
V tomto interaktivním kurzu můžete sami prozkoumat úpravou kódu, který jste napsali v interaktivním okně. Tento kurz obsahuje příklady, které můžete vyzkoušet v každém kroku.
Nejdřív si vyzkoušejte uvedené operace. Každou operaci si můžete vyzkoušet tak, že upravíte třetí řádek. Po každé úpravě vyberte tlačítko Spustit .
Subtraction (odčítání):
int c = a - b;
Multiplication (násobení):
int c = a * b;
Division (dělení):
int c = a / b;
Pokud chcete, můžete experimentovat také napsáním několika matematických operací na stejném řádku.
Tip
Když se budete učit pracovat s C# (nebo každým jiným programovacím jazykem), budete při psaní kódu dělat chyby. Kompilátor tyto chyby odhalí a upozorní vás na ně. Pokud výstup obsahuje chybové zprávy, pečlivě si prohlédněte příklad kódu a kód v interaktivním okně, abyste zjistili, co je potřeba opravit. Toto cvičení vám pomůže seznámit se se strukturou kódu v C#.
Seznámení s pořadím operací
Jazyk C# definuje prioritu různých matematických operací v souladu se stejnými pravidly, jaká jste se naučili při hodinách matematiky. Násobení a dělení mají přednost před sčítáním a odčítáním. Vyzkoušejte si 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);
Z výstupu vyplývá, že operace násobení se provede dřív než operace sčítání.
Jiné pořadí operací můžete vynutit uzavřením operace nebo operací, které chcete provést jako první, do závorek:
int a = 5;
int b = 4;
int c = 2;
int d = (a + b) * c;
Console.WriteLine(d);
Teď prozkoumáme i další možnosti s kombinací několika různých operací. Čtvrtý řádek výše uvedeného kódu nahraďte kódem podobným tomuto:
int d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Můžete si u celých čísel všimnout zvláštního chování. Výsledkem dělení celých čísel je vždycky celé číslo, i když byste očekávali, že bude výsledek obsahovat číslo s desetinnou čárkou nebo zlomek.
Pokud jste toto chování neviděli, zkuste následující kód:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
Výběrem možnosti Spustit znovu zobrazíte výsledky.
Seznámení s přesností a limity celých čísel
Z poslední ukázky jste se dozvěděli, že při dělení celých čísel dochází ke zkrácení výsledku.
Zbytek můžete získat pomocí operátoru zbytku, tedy znaku%
:
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}");
Od celých čísel v matematice se typ integer v jazyce C# se liší v jednom ohledu: typ int
má minimální a maximální limit. Tyto limity zjistíte po spuštění tohoto kódu v interaktivním okně:
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");
Pokud je výsledkem určitého výpočtu hodnota, která tyto limity překračuje, nastane stav podtečení nebo přetečení. Odpověď cyklicky přechází od jednoho limitu k druhému. Příklad zobrazíte přidáním těchto dvou řádků do interaktivního okna:
int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");
Všimněte si, že se odpověď těsně blíží minimálnímu (zápornému) celému číslu. Je stejná jako při operaci min + 2
.
Operace sčítání přetekla povolené hodnoty celých čísel.
Výsledkem je velmi velké záporné číslo, protože při přetečení došlo k „cyklickému přechodu“ od nejvyšší možné celočíselné hodnoty k nejnižší.
Existují i další číselné typy s různými limity a přesností, které můžete použít, pokud typ int
nevyhovuje vašim potřebám. Pojďme se podrobněji podívat na tyto typy čísel.
Práce s typem double
Číselný typ double
představuje číslo s plovoucí desetinnou čárkou a dvojitou přesností. Tyto výrazy možná ještě neznáte. Číslo s plovoucí desetinnou čárkou slouží k reprezentaci jiných než celých čísel, která mohou být buď velmi nízká, nebo velmi vysoká. Dvojitá přesnost je relativní termín, který popisuje čísla binárních číslic použitých k uložení hodnoty. Čísla s dvojitou přesností mají dvakrát počet binárních číslic jako jednoduchou přesnost. V moderních počítačích se častěji používají čísla s dvojitou přesností než s jednoduchou přesností. Čísla s jednoduchou přesností se deklarují pomocí klíčového float
slova.
Pojďme se na to podívat blíž. Zadejte do interaktivního okna 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. Teď zkusíme zadat o něco složitější výraz s čísly typu double:
double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);
Rozsah hodnoty double je mnohem větší než u hodnot typu integer. Spusťte v interaktivním okně následující kód:
double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");
Hodnoty jsou uvedené za použití vědeckého zápisu čísel. Číslu vlevo od písmene E
se říká mantisa. Číslo vpravo se označuje jako exponent a značí násobky 10.
Stejně jako desetinná čísla v matematice můžou mít i hodnoty typu double v C# chyby zaokrouhlení. Vyzkoušejte tento kód:
double third = 1.0 / 3.0;
Console.WriteLine(third);
Víš, že to 0.3
není 3/10
úplně stejné jako 1/3
. Podobně je 0.33
33/100
to . To je blíže 1/3
, ale stále není přesné.
Výzva
Vyzkoušejte jiné výpočty s velkými čísly, malými čísly, násobením a dělením pomocí double
typu. Zkuste zadat i složitější výpočty.
Práce s desetinnými typy
Seznámili jste se se základními typy čísel v jazyce C#: celými čísly a čísly s dvojitou přesností. Existuje ještě jeden typ, který se naučí: typ decimal
. Typ decimal
má menší rozsah, ale zato větší přesnost než typ double
. Podívejme se na to:
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 je rozsah menší než u typu double
. Větší přesnost typu decimal si můžete ověřit zadáním 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 výsledek s typem decimal má napravo od desetinné čárky víc číslic.
Přípona M
za čísly představuje způsob, jak naznačit, že má konstanta používat typ decimal
. V opačném případě kompilátor předpokládá double
typ.
Poznámka:
M
Písmeno bylo vybráno jako nejvýraznější písmeno mezi double
klíčovými slovy.decimal
Výzva
Seznámili jste se s různými typy čísel a teď můžete napsat kód, který vypočítá obsah kruhu s poloměrem 2,50 centimetru. Obsah kruhu se vypočítá jako poloměr na druhou krát číslo pí. Nápověda: Prostředí .NET obsahuje pro číslo pí konstantu Math.PI, kterou můžete pro tuto hodnotu použít. Math.PI, stejně jako všechny konstanty deklarované v System.Math
oboru názvů, je double
hodnota. Z tohoto důvodu byste měli místo hodnot pro tuto výzvu použít double
decimal
hodnoty.
Měl by vám vyjít výsledek mezi 19 a 20.
Dokončení výzvy
Napsali jste kód podobný tomuto?
double radius = 2.50;
double area = Math.PI * radius * radius;
Console.WriteLine(area);
Jestli chcete, můžete si vyzkoušet i další vzorce.
Gratulujeme!
Dokončili jste interaktivní kurz "Čísla v jazyce C#". Pokud chcete zahájit další interaktivní kurz, můžete vybrat odkaz Větve a smyčky níže nebo můžete navštívit web .NET a stáhnout sadu .NET SDK, vytvořit projekt na počítači a pokračovat v psaní kódu. 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:
Máte s touto částí nějaké problémy? Pokud ano, dejte nám prosím vědět, abychom tuto část mohli vylepšit.