Double.NaN != Double.NaNसरल का कारण है:
आप के 0/0रूप में ही होने की उम्मीद है Math.Sqrt(-3)? और उसी के रूप में Math.Sqrt(-7)?
मेरी राय में C # में एक बग है जहां Equals()NaN के लिए ओवरराइड नहीं है।
Assert.IsTrue(Double.NaN != Double.NaN);
Assert.IsTrue(Double.NaN.Equals(Double.NaN));
एक ही समय पर
Assert.IsTrue(Double.PositiveInfinity == Double.NegativeInfinity);
Assert.IsTrue(Double.PositiveInfinity.Equals(Double.PositiveInfinity));
Doubleऔर Single, जैसे, के लिए स्थिर कार्यों का उपयोग करें
Double.IsNaN(value) && Double.IsInfinity(value);
या अधिक विशिष्ट:
Double.IsPositiveInfinity(value);
Double.IsNegativeInfinity(value);