float() 함수는 파이썬 표준 라이브러리에 포함된 내장 함수로, 숫자 또는 숫자를 담고 있는 문자열을 실수(float) 자료형으로 변환해 줍니다. 정수뿐만 아니라 문자열 형태의 숫자도 손쉽게 실수로 바꿀 수 있어 데이터 처리 과정에서 매우 자주 사용됩니다.
float()로 변환 가능한 문자열의 조건
문자열이 float() 함수로 변환되기 위해서는 다음과 같은 규칙을 만족해야 합니다.
- 문자열 안에는 오직 숫자만 포함되어 있어야 합니다.
- 숫자 사이에 수학 연산자(부호 등)가 포함될 수 있습니다. 예:
-21.6 - 문자열은
NaN(Not a Number) 또는inf(무한대)를 나타낼 수도 있습니다. - 문자열 앞뒤의 공백(white space)은 항상 무시됩니다.
사용 예제
아래 프로그램은 float() 함수를 다양한 값에 적용했을 때 어떤 결과가 반환되는지 보여줍니다.
n = 89
print(type(n))
f = float(n)
print(type(f))
print("input", 7, " with float function becomes ", float(7))
print("input", -21.6, " with float function becomes ", float(-21.6))
print("input NaN, with float function becomes ", float("NaN"))
print("input InF, with float function becomes ", float("InF"))
실행 결과
<class 'int'> <class 'float'> input 7 with float function becomes 7.0 input -21.6 with float function becomes -21.6 input NaN, with float function becomes nan input InF, with float function becomes inf
실행 결과를 보면 정수 7은 7.0으로, 이미 실수인 -21.6은 그대로 유지되며, 특수 값인 NaN과 InF(대소문자 구분 없음)도 각각 nan, inf로 정상적으로 변환되는 것을 확인할 수 있습니다.
변환할 수 없는 값이 전달될 경우
반면, 숫자가 아닌 값을 전달하면 에러가 발생합니다.
print("input Tutorials, with float function becomes ", float("Tutorials"))
실행 결과
Traceback (most recent call last):
File "C:/xxx.py", line 18, in
print("input Tutorials, with float function becomes ",float("Tutorials"))
ValueError: could not convert string to float: 'Tutorials'
위 예제처럼 숫자로 해석할 수 없는 문자열 'Tutorials'를 변환하려고 하면 ValueError가 발생합니다. 따라서 실무에서는 외부 입력값을 float()로 변환하기 전에 try-except 문으로 예외 처리를 해주거나, 문자열의 유효성을 먼저 검사하는 것이 안전합니다.