>  기사  >  백엔드 개발  >  반올림에 대한 자세한 설명--python2와 python3 버전의 차이점

반올림에 대한 자세한 설명--python2와 python3 버전의 차이점

高洛峰
高洛峰원래의
2016-10-17 16:05:431849검색

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) 방법을 사용하는 것도 고려해 볼 수 있습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:파이썬 함수 - ABS()다음 기사:파이썬 함수 - ABS()