C# में Double.Equals() मेथड यह जांचता है कि दो Double इंस्टेंस समान मान दर्शाते हैं या नहीं। यह दो ओवरलोड प्रदान करता है।
सिंटैक्स
public bool Equals (double obj); public override bool Equals (object obj);
पहले सिंटैक्स में obj एक Double ऑब्जेक्ट है, दूसरे में यह कोई भी object हो सकता है।
उदाहरण 1: दो डबल मानों की तुलना
using System;
public class Demo {
public static void Main() {
double d1 = 150d;
double d2 = 150d;
Console.WriteLine("Double1 Value = " + d1);
Console.WriteLine("Double2 Value = " + d2);
Console.WriteLine("Are both the double values equal? = " + d1.Equals(d2));
}
}
आउटपुट
Double1 Value = 150 Double2 Value = 150 Are both the double values equal? = True
उदाहरण 2: डबल और ऑब्जेक्ट की तुलना
using System;
public class Demo {
public static void Main() {
double d1 = 150d;
object ob1 = 1/2; // इंटीजर डिवीजन: 0
Console.WriteLine("Double1 Value = " + d1);
Console.WriteLine("Object Value = " + ob1);
Console.WriteLine("Are both the values equal? = " + d1.Equals(ob1));
}
}
आउटपुट
Double1 Value = 150 Object Value = 0 Are both the values equal? = False
महत्वपूर्ण विचार
- फ्लोटिंग-पॉइंट परिशुद्धता: दो डबल मान जो गणितीय रूप से समान होने चाहिए, बाइनरी प्रतिनिधित्व के कारण भिन्न हो सकते हैं।
Equalsसटीक बिटवाइज समानता की जांच करता है।- तुलना के लिए
Math.Abs(d1 - d2) < epsilonपैटर्न का उपयोग करें।
सर्वोत्तम अभ्यास
// फ्लोटिंग-पॉइंट तुलना के लिए अनुशंसित दृष्टिकोण
const double EPSILON = 1e-10;
bool AreEqual(double a, double b) {
return Math.Abs(a - b) < EPSILON;
}
संबंधित मेथड्स
Double.CompareTo()- क्रम तुलना (-1, 0, 1)Double == ऑपरेटर- Equals के समान व्यवहारDouble.IsNaN()- NaN जांच (NaN == NaN हमेशा false होता है)