Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag bemutatja a C# numerikus típusait. Kis mennyiségű kódot ír, majd lefordítja és futtatja a kódot. Az oktatóanyag számos olyan leckét tartalmaz, amelyek a C#-ban lévő számokat és matematikai műveleteket vizsgálják. Ezek a leckék a C# nyelv alapjait tanítják meg.
Ebben az útmutatóban Ön:
- Indítsa el a GitHub Codespace-t egy C# fejlesztői környezettel.
- Fedezze fel az egész számokat.
- A műveletek sorrendjének megismerése.
- Ismerje meg az egész szám korlátait és pontosságát.
- Ismerje meg a lebegőpontos típusokat.
- Ismerje meg a decimális típust.
Előfeltételek
Az alábbiak egyikével kell rendelkeznie:
- GitHub-fiók a GitHub Codespaces használatához. Ha még nem rendelkezik ilyen fiókkal, létrehozhat egy ingyenes fiókot GitHub.com.
- A következő eszközökkel rendelkező számítógép:
Az egész szám matematikának felfedezése
Ha gitHub Codespace-t szeretne elindítani az oktatóanyagi környezettel, nyisson meg egy böngészőablakot az oktatóanyag kódtér-adattárában . Válassza a zöld Kód gombot és a Codespaces lapot. Ezután válassza ki a + jelet egy új codespace létrehozásához ezzel a környezettel. Ha elvégezte a hello world oktatóanyagot, megnyithatja a kódteret ahelyett, hogy újat hoz létre.
Amikor betölti a kódteret, hozzon létre egy új fájlt a numbers.cs nevű oktatóanyagok mappában.
Nyissa meg az új fájlt.
Írja be vagy másolja a következő kódot a numbers.cs fájlba:
int a = 18; int b = 6; int c = a + b; Console.WriteLine(c);Futtassa ezt a kódot a következő parancsok beírásával az integrált terminálban:
cd ./tutorials dotnet numbers.csLáttad az egyik alapvető matematikai műveletet egész számokkal. A
inttípus egész számot, nullát, pozitívat vagy negatív egész számot jelöl. A+szimbólumot használja a hozzáadáshoz. Az egész számok egyéb gyakori matematikai műveletei a következők:-
-kivonáshoz -
*a szorzáshoz -
/osztáshoz
-
Kezdje a különböző műveletek feltárásával. Adja hozzá ezeket a sorokat a következő értéket
cmegíró sor után:// subtraction c = a - b; Console.WriteLine(c); // multiplication c = a * b; Console.WriteLine(c); // division c = a / b; Console.WriteLine(c);Futtassa ezt a kódot a terminálablakba való beírással
dotnet numbers.cs.
Kísérletezhet úgy is, hogy több matematikai műveletet is megír ugyanabban a sorban, ha szeretné. Próbálja meg c = a + b - 12 * 17; például. A változók és az állandó számok keverése engedélyezett.
Borravaló
A C# (vagy bármely programozási nyelv) felfedezése során hibákat követhet el a kód írásakor. A fordító megkeresi ezeket a hibákat, és jelenti őket Önnek. Ha a kimenet hibaüzeneteket tartalmaz, tekintse meg alaposan a példakódot és az ablakban lévő kódot, hogy lássa, mit kell kijavítani. Megkérheti a Copilototot, hogy keressen különbségeket vagy szúrjon ki hibákat. Ez a gyakorlat segít a C#-kód szerkezetének megismerésében.
Elvégezte az első lépést. A következő szakasz megkezdése előtt helyezze át az aktuális kódot egy külön metódusba. A módszer egy utasítássorozat, amelyet csoportosítanak és elneveznek. A metódus meghívásához írja be a metódus nevét, majd a következőt (): . A kód metódusokba rendezése megkönnyíti egy új példa használatának megkezdését. Ha végzett, a kódnak így kell kinéznie:
WorkWithIntegers();
void WorkWithIntegers()
{
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
// subtraction
c = a - b;
Console.WriteLine(c);
// multiplication
c = a * b;
Console.WriteLine(c);
// division
c = a / b;
Console.WriteLine(c);
}
A műveletek sorrendjének megismerése
Megjegyzést fűzhet a híváshoz
WorkingWithIntegers(). A kimenet kevésbé lesz zsúfolt, miközben ezen a szakaszon dolgozol.//WorkWithIntegers();A
//program megjegyzést indít A#-ban. A megjegyzések olyan szövegek, amelyeket meg szeretne tartani a forráskódban, de nem kódként szeretné végrehajtani. A fordító nem hoz létre végrehajtható kódot a megjegyzésekből. MivelWorkWithIntegers()ez egy metódus, csak egy sort kell megjegyzésbe fűznie.A C# nyelv meghatározza a különböző matematikai műveletek elsőbbséget a matematikában tanult szabályokkal összhangban lévő szabályokkal. A szorzás és az osztás elsőbbséget élvez az összeadás és kivonás felett. Ehhez adja hozzá a következő kódot a
WorkWithIntegers()hívás után, és írja bedotnet numbers.csa terminál ablakába.int a = 5; int b = 4; int c = 2; int d = a + b * c; Console.WriteLine(d);A kimenet azt mutatja, hogy a szorzás a hozzáadás előtt történik.
Eltérő műveleti sorrendet kényszeríthet, ha zárójeleket ad hozzá az elsőként végrehajtandó művelethez vagy műveletekhez. Adja hozzá a következő sorokat, és futtassa újra:
d = (a + b) * c; Console.WriteLine(d);Számos különböző művelet kombinálásával további lehetőségeket is felfedezhet. Adjon hozzá valami hasonlót a következő sorokhoz. Próbálkozzon
dotnet numbersújra a terminálablakban.d = (a + b) - 6 * c + (12 * 4) / 3 + 12; Console.WriteLine(d);Érdekes viselkedést tapasztalhat az egész számok esetében. Az egész számok osztása mindig egész számot eredményez, még akkor is, ha azt várná, hogy az eredmény tizedes vagy törtrészt tartalmazzon.
Ha nem látja ezt a viselkedést, próbálkozzon a következő kóddal:
int e = 7; int f = 4; int g = 3; int h = (e + f) / g; Console.WriteLine(h);Az eredmények megtekintéséhez írja be
dotnet numbers.csújra a terminálablakba.
Mielőtt továbblépne, vegyük át az ebben a szakaszban írt összes kódot, és helyezzük egy új metódusba. Hívd az új metódust OrderPrecedence. A kódnak így kell kinéznie:
// WorkWithIntegers();
OrderPrecedence();
void WorkWithIntegers()
{
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
// subtraction
c = a - b;
Console.WriteLine(c);
// multiplication
c = a * b;
Console.WriteLine(c);
// division
c = a / b;
Console.WriteLine(c);
}
void OrderPrecedence()
{
int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);
d = (a + b) * c;
Console.WriteLine(d);
d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);
int e = 7;
int f = 4;
int g = 3;
int h = (e + f) / g;
Console.WriteLine(h);
}
Az egész szám pontosságának és korlátainak felfedezése
Az előző minta azt mutatta, hogy az egész szám osztás csonkolja az eredményt. A maradékot a maradék operátorral, a % karakterrel szerezheti be.
Próbálja ki a következő kódot a metódus meghívása
OrderPrecedence()után: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}");A C#-egész szám típusa egy másik módon különbözik a matematikai egész számoktól: a
inttípus minimális és maximális korlátokkal rendelkezik. A korlátok megtekintéséhez próbálkozzon az alábbi kóddal:int max = int.MaxValue; int min = int.MinValue; Console.WriteLine($"The range of integers is {min} to {max}");Ha egy számítás olyan értéket hoz létre, amely meghaladja ezeket a korlátokat, akkor alulcsordulási vagy túlcsordulási feltétel van. Úgy tűnik, hogy a válasz az egyik korláttól a másikig ível át. Egy példa megjelenítéséhez adja hozzá ezt a két sort a kódhoz:
int what = max + 3; Console.WriteLine($"An example of overflow: {what}");
Figyelje meg, hogy a válasz nagyon közel áll a minimális (negatív) egész számhoz. Ugyanaz, mint min + 2. Az összeadási művelet túlcsordult az egész számok megengedett értékein. A válasz egy nagy negatív szám, mert egy túlcsordulás "körbefut" a lehető legnagyobb egész számtól a legkisebbig.
Vannak más numerikus típusok is, amelyek különböző korlátozásokkal és pontossággal használhatók, ha a int típus nem felel meg az igényeinek. Vizsgáljuk meg a következő számtípusokat.
A dupla típussal való munka
A double numerikus típus dupla pontosságú lebegőpontos számot jelöl. Ezek a kifejezések újak lehetnek Az Ön számára. A lebegőpontos szám akkor hasznos, ha nem integrál számokat jelöl, amelyek nagy vagy kis méretűek lehetnek.
dupla pontosságú egy relatív kifejezés, amely az érték tárolásához használt bináris számjegyek számát írja le.
Dupla pontosságú számok kétszer annyi bináris számjegyet, mint egyszeres pontosságú. Modern számítógépeken gyakrabban használ kettős pontosságút, mint az egyszeres pontosságú számokat.
Az önálló pontosságú számok deklarálása a float kulcsszó használatával történik. Vizsgáljuk meg.
Adja hozzá a következő kódot, és tekintse meg az eredményt:
double a = 5; double b = 4; double c = 2; double d = (a + b) / c; Console.WriteLine(d);Figyelje meg, hogy a válasz tartalmazza a hányados tizedesrészét.
Próbáljon ki egy kicsit bonyolultabb kifejezést dupla számokkal. Használhatja a következő értékeket, vagy helyettesíthet más számokat:
double a = 19; double b = 23; double c = 8; double d = (a + b) / c; Console.WriteLine(d);A dupla érték tartománya sokkal nagyobb, mint az egész szám. Próbálja ki az alábbi kódot, amelyet az eddig írtakhoz ad hozzá:
double max = double.MaxValue; double min = double.MinValue; Console.WriteLine($"The range of double is {min} to {max}");Ezek az értékek tudományos jelölésben jelennek meg. A bal oldali
Eszám a significand. A jobb oldali szám a kitevő, a 10 hatványaként.A matematikai decimális számokhoz hasonlóan a C#-ban lévő duplák is kerekítési hibákat okozhatnak. Próbálja ki ezt a kódot:
double third = 1.0 / 3.0; Console.WriteLine(third);Tudod, hogy
0.33/10, és nem pontosan ugyanaz, mint1/3. Hasonlóképpen,0.3333/100van. Ez az érték közelebb van a1/3értékhez, de még mindig nem teljesen pontos. Függetlenül attól, hogy hány tizedesjegyet ad hozzá, kerekítési hiba marad.
Kihívás
Próbáljon ki más számításokat nagy számokkal, kis számokkal, szorzással és osztással a double típus használatával. Próbáljon ki bonyolultabb számításokat. Miután eltöltött egy kis időt a kihívás megoldásával, helyezze át a megírt kódot egy új függvénybe. Nevezze el az új metódust WorkWithDoubles.
Decimális típusok használata
A C#-ban az alapszintű numerikus típusokat látta: egész számokat és párosokat. Van még egy tanulandó típus: a decimal típus. A decimal típus kisebb tartományt, de nagyobb pontosságot biztosít, mint double.
Vessünk egy pillantást:
decimal min = decimal.MinValue; decimal max = decimal.MaxValue; Console.WriteLine($"The range of the decimal type is {min} to {max}");Figyelje meg, hogy a tartomány kisebb, mint a
doubletípus.A tizedes törttípus nagyobb pontosságát az alábbi kód kipróbálásával tekintheti meg:
double a = 1.0; double b = 3.0; Console.WriteLine(a / b); decimal c = 1.0M; decimal d = 3.0M; Console.WriteLine(c / d);Figyelje meg, hogy a decimális típusú matematikának több számjegye van a tizedesvessző jobb oldalán.
A
Mszámok utótagja azt jelzi, hogy egy állandónak a típust kell használniadecimal. Ellenkező esetben a fordító adoubletípust feltételezi.
Jegyzet
A M betű a leginkább vizuálisan eltérő betű a double és a decimal kulcsszavak között.
Kihívás
Most, hogy megismerte a különböző numerikus típusokat, írjon egy kódot, amely kiszámítja egy kör területét, amelynek sugara 2,50 centiméter. Ne feledje, hogy a kör területe a sugár négyzete szorozva π-vel. Egy tipp: A .NET egy állandót tartalmaz a PI-hez, Math.PI, amelyet ehhez az értékhez használhat.
Math.PIa System.Math névtérben deklarált összes állandóhoz hasonlóan double érték. Ezért double értékek helyett decimal kell használnia ehhez a kihíváshoz.
19 és 20 között választ kell kapnia.
Ha kipróbálja, nyissa meg a részletek panelt, és nézze meg, hogyan tette:
double radius = 2.50;
double area = Math.PI * radius * radius;
Console.WriteLine(area);
Ha szeretné, próbálkozzon más képletekkel.
A C# számokról az alábbi cikkekben tudhat meg többet:
Erőforrások törlése
A GitHub 30 napos inaktivitás után automatikusan törli a Kódteret. Ha további oktatóanyagokat tervez ebben a sorozatban, a Codespace üzembe helyezését elhagyhatja. Ha készen áll a .NET webhely felkeresésére a .NET SDK letöltéséhez, törölheti a Codespace-et. A Codespace törléséhez nyisson meg egy böngészőablakot, és nyissa meg az Ön Kódtereit. Az ablakban meg kell jelennie a kódterek listájának. Válassza ki a három elemet (...) a learn oktatóanyag kódteréhez tartozó bejegyzésben, és válassza a Törlés lehetőséget.