При вызове Double.IsNaN() с Double.PositiveInfinity в качестве аргумента результат равен false. Это противоречит моей интуиции, так как бесконечность не является числом. По-видимому, "NaN" существует только в терминах константы в .NET, описывается ли это стандартом IEEE или представляет собой детальную реализацию реализации? Есть ли более короткий способ проверить, является ли Double "NaN", чем:
(Double.IsNaN(d) || Double.IsPositiveInfinity(d) || Double.IsNegativeInfinity(d))
или
(Double.IsNaN(d) || Double.IsInfinity(d))