У меня есть проблемы с двойным типом. В MSDN я читал о двойном максимальном значении:
Результат операции, которая превышает Double.MaxValue - Double.PositiveInfinity.
Я написал несколько тестов:
Console.WriteLine(double.MaxValue + 100000 - double.MaxValue);
Console.WriteLine(double.MaxValue);
Console.WriteLine(double.MaxValue + 100000);
Console.WriteLine(double.IsPositiveInfinity(double.MaxValue + 100000));
И увидел этот результат:
0
1,79769313486232E+308
1,79769313486232E+308
False
Я не понимаю, double.MaxValue + 100000 не является положительной бесконечностью, но равен удвоенному MaxValue. Я думаю, что это должно быть PositiveInfinity, согласно документации msdn.
Я тестировал его в VS2012,.NET 4.5