[C#] 문자를 숫자형식으로 변환

|

문자형 변수를 숫자형으로 변환에는 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()으로 변경이 가능합니다.



And