>  기사  >  백엔드 개발  >  python2와 python3의 반올림 차이점 소개

python2와 python3의 반올림 차이점 소개

巴扎黑
巴扎黑원래의
2017-08-21 14:44:511998검색

round() 메서드는 n자리로 반올림된 값의 소수점을 반환합니다.

구문

다음은 round() 메서드의 구문입니다.

round( 소수점 뒤에 유지되는 자릿수를 나타내는 숫자 값

반환 값

이 메서드는 값의 소수점을 반환합니다. 정수 부분을 유지한다고 합니다.).nggits<0은 정수 부분을 반올림하는 데 사용되며 반환된 결과는 부동 소수점 숫자입니다.

Example

다음 예는 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는 x를 0에서 멀어지는 가장 가까운 배수로 반올림합니다(예: 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

둥근법 결함

위의 예를 보면 우리가 알고 있는 것과는 반올림의 반올림 방법이 다른 것을 알 수 있습니다. 사실 이것은 반올림의 버그가 아닙니다. 이것은 주로 십진법의 변환에서 비롯됩니다. 입력 시 컴퓨터의 내부 바이너리에 저장되며 이 문제는 제한된 정밀도로 해결이 불가능하며 해결할 필요가 없습니다.

Python의 10진수 모듈을 사용하면 이 문제를 해결할 수 있습니다.

반올림할 필요가 없다면 가장 친숙한 인쇄("%.2f" % 2.675) 방법을 사용하는 것도 고려해 볼 수 있습니다.

위 내용은 python2와 python3의 반올림 차이점 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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