Megosztás a következőn keresztül:


Egész szám és lebegőpontos számok használata C-ben#

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.33/10, és nem pontosan ugyanaz, mint 1/3. Hasonlóképpen, 0.3333/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:

:::code language="csharp" interactive="try-dotnet-method" source="./snippets/NumbersInCsharp/Program.cs" id="Challenge":::

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: