본문으로 건너뛰기

Python 문자열을 정수(실수) 변환

"10"은 숫자이지만 int나 float 타입이 아니라, String 타입의 객체입니다. 만약 다른 int 타입의 객체와 덧셈 등의 연산을 하려면 문자열을 int 타입으로 변환해야하는데요. 숫자로 구성된 String을 int 또는 float 타입으로 변환하는 방법을 소개합니다.

1. int() : String to int

int()는 문자열을 파싱하여 정수를 int 타입으로 변환합니다.

num_str = '10'

num = int(num_str)
print(num)
print(type(num))

Output:

10
<class 'int'>

문자열의 숫자가 정수가 아닌 실수라면, 파싱 중에 아래와 같이 에러가 발생합니다.

num_str = '10.04'

num = int(num_str)

Output:

/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
File "/home/mjs/IdeaProjects/python-ex/ex1.py", line 3, in <module>
num = int(num_str)
ValueError: invalid literal for int() with base 10: '10.04'

2. float() : String to float

float()은 문자열을 파싱하여 실수(float)를 float 타입으로 변환합니다.

num_str = '10.04'

num = float(num_str)
print(num)
print(type(num))

Output:

10.04
<class 'float'>

3. 실수(float) 문자열을 int로 변환

float()int()를 사용하여 실수 형태의 문자열의 먼저 float으로 변환하고, 그 다음에 int 타입으로 변환할 수 있습니다. 최종적으로 변환되는 타입이 int이기 때문에 float에서 소수 부분은 모두 제거됩니다.

num_str = '10.04'

num = int(float(num_str))
print(num)
print(type(num))

Output:

10
<class 'int'>