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

C# Decimal.CompareTo() 메서드 – 두 10진수 값 비교하기

C#의 Decimal.CompareTo() 메서드는 현재 인스턴스를 지정된 개체 또는 다른 Decimal 값과 비교한 후, 두 값의 상대적인 크기를 나타내는 정수를 반환합니다.

반환값의 의미

  • 음수: 현재 인스턴스가 매개변수로 전달된 값보다 작은 경우
  • 0: 두 값이 같은 경우
  • 양수: 현재 인스턴스가 매개변수로 전달된 값보다 큰 경우

구문(Syntex)

Decimal.CompareTo() 메서드의 기본 구문은 다음과 같습니다.

public int CompareTo (decimal value);
public int CompareTo (object value);

decimal 타입을 직접 받는 오버로드와, object 타입을 받는 오버로드 두 가지가 제공됩니다.

예제 1: 같은 값 비교하기

아래 예제는 서로 같은 값을 가진 두 Decimal 변수를 CompareTo() 메서드로 비교하는 코드입니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = 65.15m;
        Decimal val2 = 65.15m;
        Console.WriteLine("Decimal 1 = "+val1);
        Console.WriteLine("Decimal 2 = "+val2);
        Console.WriteLine("Comparison Value = "+(val1.CompareTo(val2)));
    }
}

출력 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Decimal 1 = 65.15
Decimal 2 = 65.15
Comparison Value = 0

두 값이 동일하기 때문에 비교 결과로 0이 반환된 것을 확인할 수 있습니다.

예제 2: object 타입과 비교하기

이번에는 object 타입으로 박싱된 Decimal 값과 비교하는 예제입니다.

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = 65.15m;
        object val2 = (decimal)4.1428600E+2;
        Console.WriteLine("Decimal 1 = "+val1);
        Console.WriteLine("Decimal 2 = "+val2);
        Console.WriteLine("Comparison Value = "+(val1.CompareTo(val2)));
    }
}

출력 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Decimal 1 = 65.15
Decimal 2 = 414.286
Comparison Value = -1

현재 인스턴스(65.15)가 비교 대상(414.286)보다 작기 때문에 음수인 -1이 반환됩니다.

정리

Decimal.CompareTo() 메서드는 두 10진수 값의 크기 관계를 손쉽게 판단할 수 있는 유용한 도구입니다. 정렬 로직이나 조건 분기 등에서 값의 상대적 크기를 확인해야 할 때 활용할 수 있으며, decimal 타입과 object 타입 두 가지 오버로드를 상황에 맞게 사용하면 됩니다.