Почему результат Decimal.MaxValue - 0. 5 целое число?

Сегодня я играл с десятичной дробью. Я заметил это:

Decimal.MaxValue 
79228162514264337593543950335

Decimal.MaxValue - 0.5m
79228162514264337593543950334

Следующий код печатает true.

static void Main(string[] args)
        {
            decimal d = Decimal.MaxValue - 0.5M;
            var b = d % 1 == 0;
            Console.WriteLine(b);

        }

Я уверен, что есть причина этого, но я не знаю, что это.

5
задан chikak 17 August 2010 в 09:40
поделиться