Gyakorlat – Lebegőpontos típusok felderítése
- 8 perc
Ebben a gyakorlatban lebegőpontos adattípusokkal dolgozik, hogy megismerje az egyes adattípusok közötti árnyalt különbségeket.
A lebegőpontos egy egyszerű értéktípus, amely a tizedesjegy jobb oldalán lévő számokat jelöli. Az integrál számoktól eltérően más szempontokat is figyelembe kell venni az adott lebegőpontos típusban tárolható maximális és minimális értékeken túl.
Lebegőpontos típusok kiértékelése
Először is figyelembe kell vennie az egyes típusok által lehetővé tett pontossági szinteket. A pontosság a tizedesvessző után tárolt értékhelyek száma.
Másodszor, figyelembe kell vennie az értékek tárolási módját és az érték pontosságára gyakorolt hatást. Az értékek tárolása például floatdouble belsőleg bináris (2. alap) formátumban történik, míg decimal decimális (10. alap) formátumban történik. Miért számít ez?
A bináris lebegőpontos értékek matematikai végrehajtása olyan eredményeket eredményezhet, amelyek meglepetést okozhatnak, ha a decimális (10. alapérték) matematikát használja. A bináris lebegőpontos matematika gyakran a valós érték közelítése. Ezért, float és double hasznosak, mert nagy számok tárolhatók, amik egy kis memóriaigényt. Azonban a float és a double csak akkor használható, ha egy közelítés hasznos. Például egy videojátékban, ha a hógolyó fröccsenésének kiszámításakor néhány ezred század eltérést tapasztalunk, az még mindig elfogadható.
Ha pontosabb válaszra van szüksége, használja decimala következőt: . Minden típushoz decimal viszonylag nagy memóriaigény tartozik, de a matematikai műveletek végrehajtása pontosabb eredményt ad. Ezért akkor érdemes használni decimal , ha pénzügyi adatokkal dolgozik, vagy bármely olyan forgatókönyvben, ahol pontos eredményre van szüksége egy számításból.
Használja a MinValue és a MaxValue tulajdonságokat minden előjeles lebegőpontos típushoz
Törölje vagy használja a sor megjegyzés operátorát
//az előző gyakorlatok összes kódjának megjegyzéséhez.A különböző adattípusok értéktartományainak megtekintéséhez frissítse a kódot a Visual Studio Code Editorban az alábbiak szerint:
Console.WriteLine("");
Console.WriteLine("Floating point types:");
Console.WriteLine($"float : {float.MinValue} to {float.MaxValue} (with ~6-9 digits of precision)");
Console.WriteLine($"double : {double.MinValue} to {double.MaxValue} (with ~15-17 digits of precision)");
Console.WriteLine($"decimal: {decimal.MinValue} to {decimal.MaxValue} (with 28-29 digits of precision)");
A Visual Studio Code File menüben válassza a Mentés lehetőséget.
A Program.cs fájlt a kód létrehozása vagy futtatása előtt menteni kell.
Az EXPLORER panelen nyissa meg a Terminált a TestProject mappa helyén, kattintson a jobb gombbal a TestProject elemre, majd válassza a Megnyitás az integrált terminálban lehetőséget.
Meg kell nyílnia egy terminálpanelnak, amely tartalmaz egy parancssort, jelezve, hogy a terminál a TestProject mappa helyére van állítva.
A terminál parancssorában a kód futtatásához írja be a dotnet run parancsot , majd nyomja le az Enter billentyűt.
Ha a "Nem található futtatandó projekt" üzenet jelenik meg, győződjön meg arról, hogy a Terminál parancssora megjeleníti a TestProject mappa várt helyét. Például:
C:\Users\someuser\Desktop\csharpprojects\TestProject>A következő kimenetnek kell megjelennie:
Floating point types: float : -3.402823E+38 to 3.402823E+38 (with ~6-9 digits of precision) double : -1.79769313486232E+308 to 1.79769313486232E+308 (with ~15-17 digits of precision) decimal: -79228162514264337593543950335 to 79228162514264337593543950335 (with 28-29 digits of precision)
Mint látható, float és double használjon egy másik jelölést, mint amit decimal a legnagyobb és legkisebb lehetséges értékek ábrázolásához használ. De mit jelent ez a jelölés?
Nagy lebegőpontos értékek dekódolása
Mivel a lebegőpontos típusok nagy számokat képesek precízen kezelni, értékük "E jelöléssel" ábrázolható, ami a tudományos jelölés egy formája, azt jelenti, hogy "10 valamely hatványával szorozni". Tehát egy olyan érték, mint 5E+2 az 500, mert az 5 * 10^2 vagy 5 x 102 értéknek felel meg.
Összefoglalás
- A lebegőpontos típus egy egyszerű érték adattípus, amely tört számokat tartalmazhat.
- Az alkalmazás megfelelő lebegőpontos típusának kiválasztásához a maximális és minimális értékeknél többet kell figyelembe vennie. Azt is figyelembe kell vennie, hogy hány érték őrizhető meg a tizedesvessző után, hogyan tárolják a számokat, és hogy a belső tárolás hogyan befolyásolja a matematikai műveletek eredményét.
- A lebegőpontos értékek néha "E jelöléssel" ábrázolhatók, amikor a számok különösen nagyok lesznek.
- Alapvető különbség van abban, hogy a fordító és a futtatókörnyezet hogyan kezeli
decimal, ellentétbenfloatvagydouble, különösen, amikor meghatározzák, mennyire van szükség pontosságra a matematikai műveletekhez.
Tesztelje tudását
Visszajelzés
Hasznosnak találta ezt az oldalt?
No
Segítségre van szüksége ezzel a témakörrel kapcsolatban?
Szeretné kipróbálni az Ask Learn használatát a témakör tisztázásához vagy áttekintéséhez?