Cvičení – zjišťování typů s plovoucí desetinou čárkou
- 8 min
V tomto cvičení pracujete s datovými typy s plovoucí desetinou čárkou a seznámíte se s drobnými rozdíly mezi jednotlivými datovými typy.
Plovoucí desetinná čárka je jednoduchý typ hodnoty, který představuje čísla vpravo od desetinné čárky. Na rozdíl od integrálních čísel existují další aspekty nad rámec maxima a minimálních hodnot, které můžete uložit v daném typu s plovoucí desetinou čárkou.
Vyhodnocení typů s plovoucí desetinou čárkou
Nejprve je nutné vzít v úvahu číslice přesnosti jednotlivých typů. Přesnost je počet míst hodnoty uložených za desetinnou čárkou.
Zadruhé musíte zvážit způsob, jakým jsou hodnoty uloženy, a dopad na přesnost hodnoty. Hodnoty se například floatdouble ukládají interně v binárním formátu (základ 2), zatímco decimal jsou uloženy v desítkovém formátu (základ 10). Proč na tom záleží?
Provádění matematiky s binárními hodnotami s plovoucí desetinnou čárkou může vést k výsledkům, které vás mohou překvapit, pokud jste zvyklí na matematiku s desetinnou čárkou (základ 10). Binární matematika s plovoucí desetinou čárkou je často aproximací skutečné hodnoty. Proto jsou double užitečná, float protože velká čísla je možné uložit pomocí malého využití paměti. Je double však třeba je použít pouze v případě, float že je užitečná aproximace. Při výpočtu splatteru sněhové koule ve videohrách je například málo tisícovek.
Pokud potřebujete přesnější odpověď, měli byste použít decimal. Každá hodnota typu decimal má relativně velké nároky na paměť, ale provádění matematických operací poskytuje přesnější výsledek. Proto byste měli použít decimal při práci s finančními daty nebo s jakýmkoli scénářem, ve kterém potřebujete přesný výsledek výpočtu.
Pro každý podepsaný typ float použijte vlastnosti MinValue a MaxValue.
Odstraňte nebo použijte operátor
//komentáře řádku k zakomentování veškerého kódu z předchozích cvičení.Pokud chcete zobrazit rozsahy hodnot pro různé datové typy, aktualizujte kód v editoru visual Studio Code následujícím způsobem:
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)");
V nabídce Soubor editoru Visual Studio Code vyberte Uložit.
Soubor Program.cs musí být uložen před sestavením nebo spuštěním kódu.
Na panelu PRŮZKUMNÍK otevřete terminál v umístění složky TestProject, klikněte pravým tlačítkem myši na TestProject a pak vyberte Otevřít v integrovaném terminálu.
Měl by se otevřít panel terminálu a měl by obsahovat příkazový řádek zobrazující, že terminál je otevřený v umístění složky TestProject.
Na příkazovém řádku terminálu pro spuštění vašeho kódu zadejte dotnet run a stiskněte Enter.
Pokud se zobrazí zpráva "Projekt nelze najít ke spuštění", ujistěte se, že příkazový řádek terminálu zobrazí očekávané umístění složky TestProject. Příklad:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Měl by se zobrazit následující výstup:
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)
Jak vidíte, a double použijte jinou notaci, float než je používána decimal k reprezentaci jeho největších a nejmenších možných hodnot. Ale co to znamená tato notace?
Dešifrování velkých hodnot s plovoucí desetinou čárkou
Vzhledem k tomu, že typy s plovoucí desetinnou čárkou mohou obsahovat velká čísla s přesností, mohou být jejich hodnoty reprezentovány pomocí zápisu "E notation", což je forma vědeckého zápisu, který znamená "krát 10 umocněných na mocninu". Takto by tedy byla hodnota 5E+2 500, protože se jedná o ekvivalent 5 × 10^2 nebo 5 x 102.
Rekapitulace
- Typ s plovoucí desetinnou čárkou je jednoduchý datový typ hodnoty, který může obsahovat desetinná čísla.
- Volba správného typu s plovoucí desetinou čárkou pro vaši aplikaci vyžaduje, abyste zvážili více než jen maximální a minimální hodnoty, které může obsahovat. Musíte také zvážit, kolik hodnot lze zachovat za desetinnou čárkou, způsob uložení čísel a vliv jejich interního úložiště na výsledek matematických operací.
- Hodnoty s plovoucí desetinou čárkou můžou být někdy reprezentovány pomocí zápisu "E", když se čísla zvětší zvlášť.
- Existuje základní rozdíl v tom, jak kompilátor a modul runtime zpracovávají
decimalna rozdíl odfloatnebodouble, zejména při určování, kolik přesnosti je nezbytné z matematických operací.