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

in csharp •  7 years ago 

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @devhongjinhyeon! You received a personal award!

1 Year on Steemit

Click here to view your Board

Do not miss the last post from @steemitboard:

SteemWhales has officially moved to SteemitBoard Ranking
SteemitBoard - Witness Update

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @devhongjinhyeon! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

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!