Pan Linhart nemá pravdu, přesnějšího výsledku samozřejmě dosáhnout můžete - stačí použít datový typ Decimal. Double je 64-bitový a dokumentace hovoří o přesnosti na 15 až 16 číslic. Decimal je oproti tomu 128-bitový a má mnohem menší rozsah než Double (proto se Vám například s výsledkem nestane to, co při použití Doublu - u Vašeho příkladu je přesný výsledek 0.00025, ale program Vám vrátil číslo jiné i přes to, že 0.00025 pomocí Doublu vyjádřit lze) a poskytuje vysokou přesnost (28 až 29 číslic). Nevýhoda bohužel je, že třída Math ve většině svých funkcí tento typ nepodporuje. Výsledek Vašeho příkladu za použití typu Decimal vyjde naprosto přesně 0.00025. Ukázka použití v C#: decimal desetCislo = Math.Abs(0.9035m - 0.903m) / 2m; ('m' za číslem říká, že je typu decimal)
|