인프런 커뮤니티 질문&답변

강성민님의 프로필 이미지
강성민

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 출력 포멧과 입력

.f로 출력할 때 반올림 값

작성

·

348

0

다음 수식을 실행하면 결과 값이 왜 1.2가 나오나요?
수식 결과가 1.25이므로 1.3이 나아야할 것 같은데

p = 5/4

print(format(p , ".1f"))

 

답변 1

0

안녕하세요 답변 도우미입니다.

파이썬에서 format() 함수를 사용할 때, ".1f"는 소수점 첫째 자리까지 표시하라는 의미에요. 그런데 왜 1.25가 아니라 1.2로 나오는지는 부동소수점의 반올림 방식 때문이에요.

파이썬은 기본적으로 '반올림 반짝' 방식을 사용하지 않고, '짝수를 선호하는' 반올림을 해요. 이를 round half to even 또는 bankers' rounding이라고 부르죠. 이 방식은 반올림할 숫자가 정확히 중간값일 때, 즉 1.5나 2.5처럼 0.5로 끝날 때, 가장 가까운 짝수로 반올림을 하게 되요.

근데 우리의 경우에는 1.25가 있어서, 반올림하면 소수 첫째 자리에서 1.3이 되어야 할 것 같지만, 파이썬에서는 이걸 1.2로 처리해버리는 것입니다.

감사합니다.

강성민님의 프로필 이미지
강성민

작성한 질문수

질문하기