C#-এ Double.CompareTo() মেথডটি বর্তমান ইনস্ট্যান্সকে একটি নির্দিষ্ট অবজেক্ট বা Double অবজেক্টের সাথে তুলনা করে এবং একটি ইন্টিজার রিটার্ন করে যা বোঝায় এই ইনস্ট্যান্সের মান নির্দিষ্ট অবজেক্ট বা Double অবজেক্টের চেয়ে কম, সমান, নাকি বেশি।
সিনট্যাক্স (Syntax)
public int CompareTo (double val); public int CompareTo (object val);
প্রথম সিনট্যাক্সে val হল তুলনা করার ডাবল-প্রেসিশন ফ্লোটিং-পয়েন্ট নম্বর। দ্বিতীয় সিনট্যাক্সে val হল তুলনা করার অবজেক্ট।
রিটার্ন মান
- 0 - দুটি মান সমান হলে
- ঋণাত্মক সংখ্যা - বর্তমান ইনস্ট্যান্স নির্দিষ্ট মানের চেয়ে ছোট হলে
- ধনাত্মক সংখ্যা - বর্তমান ইনস্ট্যান্স নির্দিষ্ট মানের চেয়ে বড় হলে
উদাহরণ ১: দুটি সমান Double মান তুলনা
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.CompareTo(d2));
}
}
আউটপুট
Double1 Value = 150 Double2 Value = 150 Are both the double values equal? = 0
উদাহরণ ২: Double এবং অবজেক্ট তুলনা
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("Are both the double values equal? = " + d1.CompareTo(d2));
}
}
আউটপুট
Double1 Value = 20 Double2 Value = 20 Are both the double values equal? = 0
মূল পয়েন্টস
CompareTo()মেথডIComparableএবংIComparable<Double>ইন্টারফেস বাস্তবায়ন করে।- এটি সর্টিং অ্যালগরিদমে (যেমন:
Array.Sort(),List.Sort()) স্বয়ংক্রিয়ভাবে ব্যবহৃত হয়। - NaN (Not a Number) এর সাথে তুলনা করার время সবসময় ১ (greater than) রিটার্ন করে, কারণ NaN যেকোনো মানের সাথে সমান নয়।
- ফ্লোটিং-পয়েন্ট প্রেসিশন সমস্যা বিবেচনা করে নিকটবর্তী মান তুলনার জন্য epsilon-ভিত্তিক তুলনা ভালো।