round() 메서드는 n자리로 반올림된 값의 소수점을 반환합니다.
구문
다음은 round() 메서드의 구문입니다.
round( x [, n] )
Parameter
x --형식을 지정해야 하는 값을 나타내는 숫자 값입니다.
n --또한 유지할 자릿수를 나타내는 숫자 값입니다. 소수점 뒤
반환 값
이 메서드는 x의 소수점을 n자리로 반올림하여 반환합니다.
PS: ngitits가 아닌 경우 반올림합니다. 전달되면 기본값은 0입니다(즉, 정수 부분이 유지됨).ngigits
예제
다음 예는 round( ) 메소드를 보여줍니다.
#!/usr/bin/python2 print "round(80.23456, 2) : ", round(80.23456, 2) print "round(100.000056, 3) : ", round(100.000056, 3) print "round(-100.000056, 3) : ", round(-100.000056, 3)
위 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
round(80.23456, 2) : 80.23 round(100.000056, 3) : 100.0 round(-100.000056, 3) : -100.0
Python3 버전과 Python2 버전의 차이점
Python2는 0에서 멀리 떨어진 곳에서 x를 반올림합니다. 가장 가까운 배수(예: round(0.5)=1, round(-0.5)=-1;
Python3에서는 x를 반올림합니다. 가장 가까운 짝수 배수(예: round(0.5)=0, round(1.5) =2.0, round(2.5)=2.0
코드:
#!/usr/bin/python2 print round(2.635, 2) print round(2.645, 2) print round(2.655, 2) print round(2.665, 2) print round(2.675, 2)
출력 결과:
2.63 2.65 2.65 2.67 2.67
라운드 방법 결함
위의 예를 보면 라운드의 반올림 방식이 비슷해 보이는데 우리의 이해가 다르다는 것을 알 수 있습니다. 사실 이는 라운드 버그가 아니며 주로 입력 시 10진수를 컴퓨터 내부 바이너리로 변환할 때 발생합니다. 더욱이 이 문제는 제한된 정밀도로는 해결될 수 없으며 해결될 필요도 없습니다.
Python의 십진 모듈을 사용하면 이 문제를 해결할 수 있습니다.
반올림할 필요가 없다면 가장 친숙한 print("%.2f" % 2.675) 방법을 사용하는 것도 고려해 볼 수 있습니다.