Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด Double.CompareTo() ใน C# พร้อมตัวอย่าง


เมธอด Double.CompareTo() ใน C# ใช้สำหรับเปรียบเทียบ อินสแตนซ์ double ปัจจุบันกับค่า double หรือออบเจ็กต์อื่น คืนค่าจำนวนเต็มบ่งชี้ลำดับ

ไวยากรณ์ (Syntax)

public int CompareTo (double val);
public int CompareTo (object val);
  • val (double) — ค่า double ที่ต้องการเปรียบเทียบ
  • val (object) — ออบเจ็กต์ที่ต้องการเปรียบเทียบ (ต้องเป็น double)

ค่าที่คืน (Return Value)

ค่าความหมาย
น้อยกว่า 0อินสแตนซ์ปัจจุบันน้อยกว่าค่าที่เปรียบเทียบ
เท่ากับ 0อินสแตนซ์ปัจจุบันเท่ากับค่าที่เปรียบเทียบ
มากกว่า 0อินสแตนซ์ปัจจุบันมากกว่าค่าที่เปรียบเทียบ

ตัวอย่างที่ 1: เปรียบเทียบ double กับ 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

ตัวอย่างที่ 2: เปรียบเทียบ double กับ object

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(double) เร็วกว่า CompareTo(object) เพราะหลีกเลี่ยง boxing/unboxing
  • หาก val เป็น null จะคืนค่า 1 (อินสแตนซ์ใดๆ มากกว่า null)
  • หาก val ไม่ใช่ double จะโยน ArgumentException
  • ค่า NaN ถือว่าน้อยกว่าค่าใดๆ รวมถึงตัวมันเอง (double.NaN.CompareTo(double.NaN) == 0 แต่ double.NaN < x เป็น true)
  • เหมาะสำหรับการจัดเรียง (sorting) และการตัดสินใจเชิงเปรียบเทียบ