Сегодня я играл с десятичной дробью. Я заметил это:
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);
}
Я уверен, что есть причина этого, но я не знаю, что это.