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

C# Double.Equals() 메서드 완벽 가이드: 예제 코드로 배우기

C#의 Double.Equals() 메서드는 두 개의 Double 인스턴스가 동일한 값을 나타내는지 여부를 판단하여 그 결과를 bool 값으로 반환하는 메서드입니다.

문법(Syntax)

Double.Equals() 메서드는 두 가지 형태로 오버로드되어 제공됩니다.

public bool Equals (double obj);
public override bool Equals (object ob);

첫 번째 문법에서 obj 매개변수는 현재 인스턴스와 비교할 Double 객체를 의미합니다. 두 번째 문법에서 ob 매개변수는 현재 인스턴스와 비교할 일반 object 객체를 의미합니다.

예제 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.Equals(d2));
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

Double1 Value = 150
Double2 Value = 150
Are both the double values equal? = True

d1과 d2가 모두 150이라는 동일한 값을 가지고 있으므로, Equals() 메서드는 True를 반환합니다.

예제 2: double 값과 object 값 비교하기

이번에는 double 값과 object 타입의 값을 비교하는 예제를 살펴보겠습니다.

using System;
public class Demo {
    public static void Main() {
        double d1 = 150d;
        object ob1 = 1/2;
        Console.WriteLine("Double1 Value = "+d1);
        Console.WriteLine("Object Value = "+ob1);
        Console.WriteLine("Are both the values equal? = "+d1.Equals(ob1));
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Double1 Value = 150
Object Value = 0
Are both the values equal? = False

이 예제에서 1/2는 정수 나눗셈으로 처리되어 0이 되며, 이는 150과 다른 값이므로 Equals() 메서드는 False를 반환합니다.

정리

Double.Equals() 메서드는 double 타입 간의 값 비교뿐만 아니라 object 타입과의 비교도 지원합니다. 다만 정수 나눗셈처럼 예상치 못한 타입 변환이 발생할 수 있으므로, 비교 전에 값의 타입과 실제 저장된 값을 반드시 확인하는 것이 좋습니다.