• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

.f로 출력할 때 반올림 값

23.11.07 15:03 작성 조회수 182

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로 처리해버리는 것입니다.

감사합니다.