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

C# Single.Equals() 메서드 완벽 정리: 개념부터 예제까지

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

문법(Syntax)

public bool Equals (float ob);
public override bool Equals (object ob);

두 문법 모두에서 매개변수 ob는 현재 인스턴스와 비교할 대상 객체를 의미합니다. 첫 번째 오버로드는 float 형식의 값을 직접 비교하고, 두 번째 오버로드는 object 형식으로 박싱된 값을 비교합니다.

예제 1: 서로 다른 값 비교하기

아래 예제에서는 두 개의 서로 다른 float 값을 Equals() 메서드로 비교해 봅니다.

using System;
public class Demo {
    public static void Main() {
        float f1 = 15.9f;
        float f2 = 40.2f;
        Console.WriteLine("Value1 = " + f1);
        Console.WriteLine("Value2 = " + f2);
        Console.WriteLine("Are both the values equal? = " + f1.Equals(f2));
    }
}

출력 결과

Value1 = 15.9
Value2 = 40.2
Are both the values equal? = False

15.9와 40.2는 서로 다른 값이므로 Equals() 메서드가 False를 반환한 것을 확인할 수 있습니다.

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

이번에는 float 값과 object 타입으로 박싱된 값을 비교해 보겠습니다.

using System;
public class Demo {
    public static void Main() {
        float f1 = 10.9f;
        object f2 = 10.9f;
        Console.WriteLine("Value1 = " + f1);
        Console.WriteLine("Value2 = " + f2);
        Console.WriteLine("Are both the values equal? = " + f1.Equals(f2));
    }
}

출력 결과

Value1 = 10.9
Value2 = 10.9
Are both the values equal? = True

두 값이 모두 10.9로 동일하기 때문에 Equals() 메서드가 True를 반환합니다. 이처럼 Single.Equals() 메서드는 값이 같은지 여부를 정확하게 판별해 줍니다.

정리

Single.Equals() 메서드는 float 값뿐만 아니라 object 타입과의 비교도 지원하며, 두 인스턴스가 같은 값을 가질 때 true, 다를 때 false를 반환합니다. 부동소수점 수를 비교할 때 == 연산자 대신 Equals() 메서드를 사용하면 타입 안정성 측면에서 더 명확한 코드를 작성할 수 있습니다.