Nedeni Double.NaN != Double.NaNbasit:
0/0Aynı olmasını Math.Sqrt(-3)mı bekliyorsunuz ? Ve aynı Math.Sqrt(-7)?
Bence Equals()NaN için geçersiz kılınmayan bir C # hatası var .
Assert.IsTrue(Double.NaN != Double.NaN);
Assert.IsTrue(Double.NaN.Equals(Double.NaN));
Aynı zamanda
Assert.IsTrue(Double.PositiveInfinity == Double.NegativeInfinity);
Assert.IsTrue(Double.PositiveInfinity.Equals(Double.PositiveInfinity));
Statik işlevleri Doubleve için kullanın Single, örneğin
Double.IsNaN(value) && Double.IsInfinity(value);
Veya daha spesifik:
Double.IsPositiveInfinity(value);
Double.IsNegativeInfinity(value);