문자형 변수를 숫자형으로 변환에는 2가지의 방법이 있습니다.
- 해당 타입의 Parse() 메소드 사용
- 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()으로 변경이 가능합니다.
Congratulations @devhongjinhyeon! You received a personal award!
Click here to view your Board
Do not miss the last post from @steemitboard:
Congratulations @devhongjinhyeon! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!