C#

c# 정수 형변환 Convert와 int.Parse의 차이

100ksoft 2024. 11. 22. 21:59

Convert.ToInt32

  • 다양한 입력 형식: 문자열 외에도 bool, double, null 등 다양한 형식 지원
  • 널 처리: null 입력 시 0 반환
  • 사용 예시:
string strNumber = "123";
int number = Convert.ToInt32(strNumber); // 123

string nullString = null;
int number2 = Convert.ToInt32(nullString); // 0

int.Parse

  • 문자열 변환 전용: 오직 문자열만 변환 가능
  • 널 처리 없음: null 입력 시 ArgumentNullException 발생
  • 사용 예시:
string strNumber = "123";
int number = int.Parse(strNumber); // 123

string invalidString = null;
// int number2 = int.Parse(invalidString); // 예외 발생 (ArgumentNullException)

(int) 명시적 형변환

  • 숫자형 데이터 간 변환: 주로 double, float, long 등을 int로 변환
  • 소수점 자르기: 소수점 이하 자르고 정수 부분만 반환
  • 사용 예시:
double doubleValue = 123.45;
int number = (int)doubleValue; // 123

object obj = 123;
int number2 = (int)(double)obj; // 123

선택 기준

  • 입력이 다양한 형식일 때: Convert.ToInt32
  • 입력이 항상 유효한 문자열일 때: int.Parse
  • 숫자형 데이터 간의 변환: (int) 명시적 형변환

이와 같은 기준을 기억하면, 각 상황에 맞는 최적의 변환 방법을 선택하여 코드의 안정성과 가독성을 높일 수 있습니다. 

감사합니다.