문자형 변수를 숫자형으로 변환에는 2가지의 방법이 있습니다.
1.해당 타입의 Parse() 메소드 사용
2.Convert 클래스 사용
우선 예제를 보겠습니다.
string s1 = "1234"; string s2 = "1234.65"; string s3 = null; string s4 = "123456789123456789123456789123456789123456789"; int result; bool success; result = Int32.Parse(s1); //-- 1234 result = Int32.Parse(s2); //-- FormatException result = Int32.Parse(s3); //-- ArgumentNullException result = Int32.Parse(s4); //-- OverflowException result = Convert.ToInt32(s1); //-- 1234 result = Convert.ToInt32(s2); //-- FormatException result = Convert.ToInt32(s3); //-- 0 result = Convert.ToInt32(s4); //-- OverflowException success = Int32.TryParse(s1, out result); //-- success => true; result => 1234 success = Int32.TryParse(s2, out result); //-- success => false; result => 0 success = Int32.TryParse(s3, out result); //-- success => false; result => 0 success = Int32.TryParse(s4, out result); //-- success => false; result => 0
변경하려는 타입의 Parse() 메소드를 이용하면 변환이 가능합니다. 여기에서 Int16, int32(int), int64 의 타입이 있는데
이것들의 차이는 값의 범위 입니다. Int64가 가장큰 범위를 가지고 있습니다.
타입.Parse()는 string 값만 변환을 하지만 Convert클래스는 뒤의 메소드를 무엇을 쓰는지에 따라서 다양한 변환을 처리가
가능합니다. 또한 파라미터로 string만 받는것이 아니라 object나 bool등의 다양한 입력을 받아서 변환이 가능합니다.
또 한가지 중요한 차이점은 Convert를 사용하면 null값을 입력받아도 오류가 발생하지 않습니다.
타입의 TryParse()를 이용하면 변환의 성공여부와 결과를 입력 파라미터에 저장합니다.
입력이 고정(항상 문자) 되어 있는 곳에서는 필요하지 않겠지만, 사용자의 입력을 받는 곳에서는 TryParse로 미리 판단해서 오류
가 없게 처리해야합니다.
반대로 숫자를 문자로 변경하려면 해당 타입에서 .Tostring()으로 변경이 가능합니다.
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 날짜 비교 (Datetime 시간차이 구하기) (0) | 2015.03.19 |
---|---|
[C#] 숫자를 문자형으로 변경하기 (0) | 2015.03.19 |
C# 서비스 프로그램 만들기 (0) | 2013.11.21 |
사용자정의 컨트롤 예제입니다. (2) | 2011.01.17 |
[MS ACCESS DB] MDB 파일별 암호 설정하기 및 C#에서 로드하기 (0) | 2011.01.12 |