기-억하기 위해 기-록을

[Python] 소수점 자리 수 출력 - round(), format() 본문

Python

[Python] 소수점 자리 수 출력 - round(), format()

seopark 2021. 4. 5. 01:43

시험성적 평균과 등급 구하기

평균은 소수점 2번째 자리까지만 (3번째 자리에서 반올림) 출력하며
등급은 평균 90점 이상일 경우 A
90점 미만 80점 이상일 경우 B
80점 미만 70점 이상일 경우 C
70점 미만 60점 이상일 경우 D
60점 미만으로는 F


평균을 소수점 2번째 자리까지만 나타내기 위하여 처음에는 round() 함수를 사용하였습니다.

avg = round(avg,2)

100.00으로 출력되어야 하지만 끝자리의 0이 사라진 채 100.0으로 나타나는 것을 확인할 수 있었습니다.

round() 함수는 끝자리가 0이면 출력하지 않는 문제가 있었습니다.

 

원하는 출력형식을 나타내기 위해서 format() 함수를 사용해봤습니다.

avg = format(avg,".2f")

이 결과 원하는 값을 얻을 수 있었습니다.

 

 

 

정리


round() 함수

number를 소수점 다음 ndigits 정밀도로 반올림한 값을 돌려줍니다.

ndigits가 생략되거나 None 이면 입력에 가까운 정수를 돌려줍니다.

float에 대한 round() 동작은 예상과 다를 수 있습니다.

round(2.675, 2)는 2.68 대신 2.67을 제공하며 버그가 아닌

십진 소수가 float로 정확히 표현될 수 없다는 사실로부터 오는 결과라고 할 수 있습니다.

 

공식 문서  : docs.python.org/ko/3/library/functions.html#round

 

 

'Python' 카테고리의 다른 글

[Python] 장고 admin 시간  (0) 2021.02.18
[Python] 파이썬 시간을 한글 포맷하다 생긴 오류  (0) 2021.01.26