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.
Borravaló
Ha egy kódrészletblokk tartalmazza a "Futtatás" gombot, az a gomb megnyitja az interaktív ablakot, vagy lecseréli a meglévő kódot az interaktív ablakban. Ha a kódrészlet nem tartalmaz "Futtatás" gombot, átmásolhatja a kódot, és hozzáadhatja az aktuális interaktív ablakhoz.
Az egész szám matematikának felfedezése
Futtassa az alábbi kódot az interaktív ablakban.
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
Az előző kód az egész számokkal végzett alapvető matematikai műveleteket mutatja be. A int
típus egy egész, pozitív 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. Módosítsa a harmadik sort az egyes műveletek kipróbálásához. A kivonás kipróbálásához például cserélje le a +
-t egy -
-re az alábbi módon a sorban:
int c = a - b;
Próbálja ki. Válassza a „Futtatás” gombot. Ezután próbálkozzon a szorzással *
és az osztással /
. Kísérletezhet úgy is, hogy több matematikai műveletet is megír ugyanabban a sorban, ha szeretné.
Borravaló
A C# (vagy bármely programozási nyelv) felfedezése során hibákat követ el a kód írásakor. A fordító megkeresi ezeket a hibákat, és jelentést készít önnek. Ha a kimenet hibaüzeneteket tartalmaz, tekintse meg alaposan a példakódot és az interaktív ablakban található kódot, hogy lássa, mit kell kijavítani. Ez a gyakorlat segít a C#-kód szerkezetének megismerésében.
A műveletek sorrendjének megismerése
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. Ezt a következő kód interaktív ablakban való futtatásával ismerheti meg:
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 az interaktív ablakhoz:
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. Cserélje le az előző kód negyedik sorát a következőhöz hasonlóra:
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.
Próbálja ki a következő kódot:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
Az egész szám pontosságának és korlátainak felfedezése
Az utolsó minta azt mutatta, hogy az egész szám osztás csonkolja az eredményt. A maradékot a maradék operátor, a %
karakter felhasználásával szerezheti be:
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 int
tí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 az interaktív ablakban:
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átokat és pontosságot használnak, 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 hasznos lehet olyan nemintegrális számok ábrázolására, amelyek nagyok 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ú. A modern számítógépeken gyakoribb a dupla pontosság használata, mint az egyszeres pontosságú számok.
egyetlen pontosságú számok deklarálása a float
kulcsszóval történik. Vizsgáljuk meg. Futtassa 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 nagyobb, mint az egész szám. Próbálja ki az alábbi kódot az interaktív ablakban:
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 E
előtti szám a significand. A E
utáni szám a kitevő, mint a 10 hatványa.
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.3
3/10
, és nem pontosan ugyanaz, mint 1/3
. Hasonlóképpen, 0.33
33/100
van. Ez az érték közelebb van a 1/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.
Decimális típusok használata
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 double
tí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 tizedesjelet használó matematikának több számjegye van a tizedesvessző jobb oldalán.
A számok M
utótagja azt jelzi, hogy egy állandónak decimal
típust kell használnia. Ellenkező esetben a fordító a double
típust feltételezi.
Jegyzet
A M
betűt választották a double
és decimal
kulcsszavak közötti legszembetűnőbb betűnek.
Kihívás
Írjon egy 2,50 centiméter sugarú kör területét kiszámító kódot. 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.
Miután kipróbálta, nyissa meg a részletek panelt, és nézze meg, hogyan tette:
Ha szeretné, próbálkozzon más képletekkel.
Elvégezte a "Számok c#-ban" interaktív oktatóanyagot. A következő interaktív oktatóanyag elindításához válassza a Tuples és a Types hivatkozást, vagy látogasson el a .NET webhelyre a .NET SDK letöltéséhez, projekt létrehozásához a számítógépen, és folytassa a kódolást. A "Következő lépések" szakaszban visszatérhet ezekhez az oktatóanyagokhoz.
A C# számokról az alábbi cikkekben tudhat meg többet: