C# में Double.CompareTo() मेथड इस इंस्टेंस की तुलना निर्दिष्ट Double या Object से करता है और एक इंटीजर लौटाता है जो क्रम को दर्शाता है।
सिंटैक्स
public int CompareTo (double val); public int CompareTo (object val);
रिटर्न मान
| मान | अर्थ |
|---|---|
| < 0 | यह इंस्टेंस val से कम है |
| = 0 | यह इंस्टेंस val के बराबर है |
| > 0 | यह इंस्टेंस val से अधिक है |
उदाहरण 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("Comparison result = " + d1.CompareTo(d2));
}
}
आउटपुट
Double1 Value = 150 Double2 Value = 150 Comparison result = 0
उदाहरण 2: डबल और बॉक्स्ड ऑब्जेक्ट की तुलना
using System;
public class Demo {
public static void Main() {
double d1 = 20d;
object d2 = 20d; // बॉक्स्ड डबल
Console.WriteLine("Double1 Value = " + d1);
Console.WriteLine("Double2 Value = " + d2);
Console.WriteLine("Comparison result = " + d1.CompareTo(d2));
}
}
आउटपुट
Double1 Value = 20 Double2 Value = 20 Comparison result = 0
व्यावहारिक उपयोग: सॉर्टिंग और तुलना
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
List numbers = new List { 3.14, 1.41, 2.71, 0.57 };
Console.WriteLine("Before sorting:");
numbers.ForEach(n => Console.Write(n + " "));
numbers.Sort(); // आंतरिक रूप से CompareTo का उपयोग करता है
Console.WriteLine("\nAfter sorting:");
numbers.ForEach(n => Console.Write(n + " "));
}
}
आउटपुट
Before sorting: 3.14 1.41 2.71 0.57 After sorting: 0.57 1.41 2.71 3.14
विशेष मानों का संचालन
NaNकिसी भी मान से कम माना जाता है, यहां तक कि खुद से भी।NegativeInfinityसभी मानों से कम।PositiveInfinityसभी मानों से अधिक।
सावधानी
फ्लोटिंग-पॉइंट परिशुद्धता के कारण, गणना से प्राप्त मान जो समान होने चाहिए, CompareTo में 0 के अलावा मान दे सकते हैं। तुलना के लिए ईपीएसिलॉन-आधारित दृष्टिकोण पर विचार करें।