Неточность вычисления .1 + .2 == .3 - C#

Формулировка задачи:

Здравствуйте, подскажите пожалуйста как обойти вот этот феномен:
Console.WriteLine( .1 + .2 == .3 );
// Out - false
И из-за чего такое происходит? И в каких случаях кроме .1 + .2 может повториться?


textual

Код к задаче: «Неточность вычисления .1 + .2 == .3 - C#»

            float aFloat = .1f, bFloat = .2f, cFloat = .3f, eps = .000001f;
            decimal aDecimal = .1m, bDecimal = .2m, cDecimal = .3m;
            Console.WriteLine("Float comparing: " + (aFloat + bFloat == cFloat).ToString());
            Console.WriteLine("Float comparing with eps: " + (Math.Abs(aFloat + bFloat - cFloat) < eps).ToString());
            Console.WriteLine("Decimal comparing: " + (aDecimal + bDecimal == cDecimal).ToString());
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

12   голосов, оценка 4.083 из 5

Источник