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() 메서드를 사용하면 타입 안정성 측면에서 더 명확한 코드를 작성할 수 있습니다.