[Python 함수정리] 숫자 반올림하고싶을때 :: round

두비니

·

2020. 3. 19. 16:18

 

:: Python 함수정리 :: 

round()

 

 

round함수는 반올림을 해주는 함수입니다. 조금 다른점이 있다면 우리는 0.5이상을 반올림해주는데, 이 함수는 0.5초과를 해야 반올림 처리가 되더군요..

제 상식의 문제인지 이 함수가 그렇게 짜여진 건지는 잘 모르겠습니다.

 

<코드>

print(round(10.5))
print(round(10.2))
print(round(4.5))
print(round(0.66))
print(round(-0.33))
print(round(-0.6))
printround(-10.01))

 

<결과값>

10
10
4
1
0
-1
-10

 

 

 

 

 

실습은 repl.it 5.2를 참고하도록 하겠습니다.

 

 

보면 문자열을 반반 나누어서 뒤의 반토막을 먼저 출력하라는 문제인데, if문을 쓰지 말라고해서 round함수를 쓸 예정입니다.

 

s= input()
half = round(len(s)/2+0.1)
print(s[half:]+s[:half])

 

위가 해결코드인데, 설명을 조금 하자면

'Qwerty'같은 짝수개의 문자열은 상관없지만,

'Hello'같은 홀수개의 문자열은 앞의 반쪽에 3개, 뒤의 반쪽에 2개를 넣어야합니다.

만약 반대의 상황이였다면 길이를 2로 나눈 뒤 버림을 해주면 되지만(int사용)

뒤에 소수점이 있을때 올림을 해줘야하는 상황이므로 round를 사용하게 되었습니다.

 

추가로 둘째줄에 0.1을 더한 이유는 round함수 특성상 0.5까지는 내림을 하고, 그 이후부터는 올림을 하기 때문에 올림되라고 0.1을 더해주었습니다.

 

 

 

참고로 math라이브러리를 쓰는 ceil함수도 있지만 다음에 다뤄보도록 할게요!