-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
.f로 출력할 때 반올림 값
23.11.07 15:03 작성 조회수 182
0
다음 수식을 실행하면 결과 값이 왜 1.2가 나오나요?
수식 결과가 1.25이므로 1.3이 나아야할 것 같은데
p = 5/4
print(format(p , ".1f"))
답변을 작성해보세요.
0
잔재미코딩 DaveLee
지식공유자2023.11.08
안녕하세요 답변 도우미입니다.
파이썬에서 format()
함수를 사용할 때, ".1f"
는 소수점 첫째 자리까지 표시하라는 의미에요. 그런데 왜 1.25가 아니라 1.2로 나오는지는 부동소수점의 반올림 방식 때문이에요.
파이썬은 기본적으로 '반올림 반짝' 방식을 사용하지 않고, '짝수를 선호하는' 반올림을 해요. 이를 round half to even 또는 bankers' rounding이라고 부르죠. 이 방식은 반올림할 숫자가 정확히 중간값일 때, 즉 1.5나 2.5처럼 0.5로 끝날 때, 가장 가까운 짝수로 반올림을 하게 되요.
근데 우리의 경우에는 1.25가 있어서, 반올림하면 소수 첫째 자리에서 1.3이 되어야 할 것 같지만, 파이썬에서는 이걸 1.2로 처리해버리는 것입니다.
감사합니다.
답변 1