파이썬 %.2f 사용법
%.2f란 무엇이고, 언제 사용하나요?
파이썬에서 소수점을 원하는 자리까지만 출력하고 싶을 때 %.2f와 같은 포매팅을 자주 사용합니다. 이 표기는 실수(float) 값을 소수점 아래 둘째 자리까지 반올림해서 문자열로 바꿀 때 쓰는 대표적인 포맷입니다. 예를 들어 3.14159를 소수점 둘째 자리까지 출력하면 3.14가 됩니다.
이 글에서는 %.2f의 기본 사용법, 다른 포매팅 방식과의 차이, 실제 코딩 중 흔히 발생하는 실수와 안전하게 활용하는 방법까지 단계적으로 설명합니다.
가장 단순한 %.2f 사용 예제
먼저, %.2f를 이용해 실수를 소수점 둘째 자리까지 출력하는 가장 기본적인 예제를 살펴봅니다. 일반적으로 % 연산자와 print()를 함께 사용합니다.
실행 결과
원주율은 3.14입니다.여기서 '%.2f'는 소수점 아래 둘째 자리까지, % pi 부분이 pi 변수의 값을 해당 서식에 맞추어 대입합니다. 즉, 3.14로 깔끔하게 출력됩니다.
포맷 방식별 차이점과 핵심 포인트
파이썬에서는 %.2f 외에도 다양한 방식으로 소수점 자리수를 지정할 수 있습니다. 세 가지 방법을 비교해 보겠습니다.
- 퍼센트 포매팅(
'%.2f' % value) - format 메서드(
'{:.2f}'.format(value)) - f-string(
f'{value:.2f}', 파이썬 3.6 이상)
동일한 값을 이 세 가지 방식으로 출력해보겠습니다.
실행 결과
퍼센트 포매팅: 1.57
format 메서드: 1.57
f-string: 1.57]
세 줄 모두 화면에 1.57이 출력됩니다. 퍼센트 포매팅은 문법이 간단하고 오래전부터 쓰였지만, 최근에는 가독성 좋은 f-string 방식이 많이 사용됩니다. 다만, f-string은 파이썬 3.6 이상에서만 동작합니다.
코드 실행 흐름과 자주 하는 실수
%.2f를 사용할 때 초보자가 자주 실수하는 부분은 다음과 같습니다.
- 실수 대신 정수 대입: 정수도 문제없이 소수점까지 출력되지만, 2.00처럼 표시됩니다.
- 문자열에 직접 % 연산: 형식이 맞지 않으면 오류가 납니다.
- %.2f 자리수 잘못 표기: f 앞 숫자가 빠지거나 오타를 내면 예외가 발생할 수 있습니다.
실수 예시를 하나 살펴보고, 정상 코드를 바로 옆에서 비교해봅니다.
잘못된
num = 3.14159
print('값은 %2f' % num) # 소수점 자리수 지정이 없음]
위 코드는 소수점 아래 자릿수가 지정되지 않아 3.141590처럼 여섯 자리까지 출력됩니다.
수정 방법은 아래와 같습니
실행 결과
값은 3.146]]
이제 3.14로 출력됩니다. 만약 %.2f가 아니라 %f만 쓴다면 기본적으로 6자리까지 표시됩니다. 원하는 자리수로 맞추려면 반드시 %.2f처럼 숫자를 넣어야 합니다.
round()와 %.2f의 차이점
round() 함수도 소수점 자리수를 제한할 수 있지만, %.2f와는 쓰임이 다릅니다. round()는 실제로 값을 반올림해서 변수에 저장할 때, %.2f는 화면에 출력할 때 포맷을 지정하는 용도입니다. 아래 예제를 확인하
실행 결과
반올림한 값: 5.68
포맷으로 출력한 값: 5.68_8]]
rounded 변수는 5.68(실제 값), %.2f로 출력하면 문자열 '5.68'이 됩니다. 즉, %.2f는 변수의 원래 값은 바꾸지 않고, 출력할 때만 자리수를 제한합니다.
실제 사용 상황 예시: 금액 계산
소수점 자리수 제한은 특히 금액, 평균, 비율 등에서 많이 활용됩니다. 예를 들어, 세 개 상품의 가격 평균을 소수점 둘째 자리까지 출력하는 코드를 작성해
실행 결과
평균 금액: 18300.00원_10]]
위 코드는 평균 금액을 18333.33원처럼 소수점 둘째 자리까지만 보여줍니다.
핵심 정리와 연습 문제
핵심 정리
%.2f는 실수 값을 소수점 둘째 자리까지 반올림해 문자열로 표현할 때 사용합니다.- 퍼센트 포매팅,
format(), f-string 모두 자리수 제한이 가능합니다. round()는 값 자체를 반올림,%.2f는 출력 시 포맷만 바꿉니다.- 오타, 자리수 생략, 자료형 혼동 등 실수에 주의하세요.
연습 문제
- 실수 7.9876을 소수점 둘째 자리까지 출력하는 코드를
%.2f와 f-string 두 가지 방식으로 작성해보세요. - 숫자 8.125와 2.75의 합계를 소수점 두 자리로 반올림해 출력하려면 어떻게 해야 할까요? (힌트:
sum()과%.2f활용) - 사용자가 입력한 실수를 소수점 둘째 자리로 포맷하여 출력하는 프로그램을 만들어 보세요. (힌트:
input()사용)