Sobes.tech
Middle

Jaký datový typ je nejvhodnější pro ukládání a práci s peněžními hodnotami?

sobes.tech AI

Odpověď od AI

Desetinné.

Má vysokou přesností, umožňuje uložit až 28-29 významných číslic a je určen pro finanční výpočty, kde je přesnost kritická. Na rozdíl od float a double, které používají binární reprezentaci a mohou vést k zaokrouhlovacím chybám při práci s desetinnými čísly, decimal používá desetinnou reprezentaci, což tyto problémy vylučuje.

Příklad použití:

// Deklarace proměnné typu decimal pro uložení peněžní hodnoty
decimal price = 19.99m;

// Provádění aritmetických operací s peněžními hodnotami
decimal taxRate = 0.20m;
decimal total = price * (1 + taxRate);

// Zobrazení přesného výsledku
Console.WriteLine($"Celková cena: {total}"); // Výstup: Celková cena: 23,988

Porovnání s jinými datovými typy:

Typ dat Přibližný rozsah hodnot Přesnost Vhodné pro peněžní hodnoty?
float ±1.5 x 10⁻⁴⁵ do ±3.4 x 10³⁸ 7 desetinných míst Ne
double ±5.0 x 10⁻³²⁴ do ±1.7 x 10³⁰⁸ 15-17 desetinných míst Ne
decimal ±1.0 x 10⁻²⁸ do ±7.9228 x 10²⁸ 28-29 desetinných míst Ano

Použití decimal zajišťuje požadovanou přesnost a spolehlivost při práci s finančními daty, předchází chybám zaokrouhlení, které mohou nastat při použití typů s plovoucí desetinnou čárkou.