Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Single.CompareTo() 메서드 완벽 정리 – 예제 코드로 쉽게 배우기

C#의 Single.CompareTo() 메서드는 현재 인스턴스를 지정된 개체(object) 또는 다른 Single(float) 인스턴스와 비교하고, 두 값의 크기 관계를 나타내는 정수를 반환합니다.

반환값의 의미는 다음과 같습니다.

  • 첫 번째 인스턴스가 두 번째 값보다 작으면 0보다 작은 값을 반환합니다.
  • 두 값이 같으면 0을 반환합니다.
  • 첫 번째 인스턴스가 두 번째 값보다 크면 0보다 큰 값을 반환합니다.

구문(Syntax)

Single.CompareTo() 메서드는 두 가지 오버로드 형태로 제공됩니다.

public int CompareTo (float val);
public int CompareTo (object val);

첫 번째 구문의 val 매개변수는 비교할 단정밀도(single-precision) 부동 소수점 숫자이며, 두 번째 구문의 val은 비교할 개체입니다.

예제 1 – float 값끼리 비교하기

아래 예제에서는 두 개의 float 변수를 CompareTo() 메서드로 비교해 봅니다.

using System;
public class Demo {
    public static void Main(){
        float f1 = 50.7f;
        float f2 = 50.7f;
        Console.WriteLine("Value1 = "+f1);
        Console.WriteLine("Value2 = "+f2);
        Console.WriteLine("Is f1 and f2 equal? = "+f1.CompareTo(f2));
    }
}

실행 결과

Value1 = 50.7
Value2 = 50.7
Is f1 and f2 equal? = 0

두 값이 동일하므로 CompareTo() 메서드는 0을 반환합니다.

예제 2 – object와 비교하고 조건문으로 결과 처리하기

이번에는 object 타입의 값과 비교한 후, 반환값을 if 문으로 판별하는 예제입니다.

using System;
public class Demo {
    public static void Main(){
        float f1 = 50.7f;
        object f2 = 50.7f;
        Console.WriteLine("Value1 = "+f1);
        Console.WriteLine("Value2 = "+f2);
        int res = f1.CompareTo(f2);
        if (res > 0)
            Console.WriteLine("f1 > f2");
        else if (res < 0)
            Console.WriteLine("f1 < f2");
        else
            Console.WriteLine("f1 = f2");
    }
}

실행 결과

Value1 = 50.7
Value2 = 50.7
f1 = f2

정리

Single.CompareTo() 메서드는 float 값의 대소 비교를 간편하게 처리할 수 있는 메서드입니다. 반환값이 음수인지, 0인지, 양수인지에 따라 두 값의 크기 관계를 명확하게 판단할 수 있으며, 정렬(sorting) 로직이나 조건 분기에서 유용하게 활용됩니다.