C#의 Char.GetNumericValue() 메서드는 지정된 유니코드 숫자 문자를 double 형(배정밀도 부동 소수점) 숫자로 변환하는 데 사용됩니다.
이 메서드는 인자로 전달된 문자가 숫자를 나타내는 유니코드 문자라면 해당 숫자 값을 반환하고, 숫자가 아닌 일반 문자라면 -1을 반환한다는 점이 특징입니다.
문법(Syntax)
기본 문법은 다음과 같습니다.
public static double GetNumericValue (char ch);
여기서 매개변수 ch는 변환할 유니코드 문자를 의미합니다.
예제 1 – 숫자가 아닌 문자
먼저 숫자가 아닌 문자 'm'을 전달했을 때의 동작을 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
char val = 'm';
bool res;
Console.WriteLine("Hashcode for val = " + val.GetHashCode());
res = val.Equals('m');
Console.WriteLine("Return Value = " + res);
Console.WriteLine("Numeric Value = " + Char.GetNumericValue(val));
}
}실행 결과
Hashcode for val = 7143533 Return Value = True Numeric Value = -1
'm'은 숫자를 나타내는 문자가 아니므로 GetNumericValue() 메서드가 -1을 반환한 것을 확인할 수 있습니다.
예제 2 – 숫자 문자
이번에는 숫자 문자 '5'를 전달해 보겠습니다.
using System;
public class Demo {
public static void Main(){
char val = '5';
bool res;
Console.WriteLine("Hashcode for val = " + val.GetHashCode());
res = val.Equals('m');
Console.WriteLine("Return Value = " + res);
Console.WriteLine("Numeric Value = " + Char.GetNumericValue(val));
}
}실행 결과
Hashcode for val = 3473461 Return Value = False Numeric Value = 5
'5'는 숫자를 나타내는 유니코드 문자이므로 메서드가 실제 숫자 값인 5(double 형)를 반환했습니다.
정리
Char.GetNumericValue() 메서드는 다음과 같이 동작합니다.
- 인자로 받은 문자가 숫자를 나타내는 유니코드 문자면 해당 숫자 값을 double 형으로 반환합니다.
- 숫자가 아닌 문자면 -1을 반환합니다.
- 분수나 아래첨자 숫자 등 다양한 유니코드 숫자 표현도 처리할 수 있습니다.
문자열에서 특정 문자가 숫자인지 판별하거나, 문자 형태의 숫자를 수치 데이터로 변환해야 할 때 유용하게 활용할 수 있습니다.