Python에서 거의 동일한지 부동 소수점 비교: 자세히 살펴보기
잠재적인 반올림 및 정밀도 문제로 인해 Python에서 부동 소수점의 정확한 동일성을 비교합니다. 파이썬은 어려울 수 있습니다. 이는 Bruce Dawson의 "Comparing Floating Point Numbers, 2012 Edition" 블로그 게시물에서 강조된 것처럼 잘 알려진 문제입니다. Python에서 이 문제를 효과적으로 해결하기 위해 여러 가지 접근 방식을 고려할 수 있습니다.
표준 라이브러리 함수
Python 3.5에서는 math.isclose() 및 cmath.isclose()를 도입했습니다. 플로트를 허용 수준과 비교하기 위해 특별히 설계된 기능입니다. 이 함수는 세 가지 인수를 허용합니다:
a와 b의 절대 차이가 rel_tol * max(abs(a), abs(b)) 또는 abs_tol보다 작으면 값이 동일한 것으로 간주됩니다.
이전 Python 버전용 사용자 정의 함수
이전 Python 버전을 사용하는 경우 3.5에서는 문서에 제공된 다음 코드 조각을 기반으로 고유한 isclose() 함수를 구현할 수 있습니다.
def isclose(a, b, rel_tol=1e-09, abs_tol=0.0): return abs(a - b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
이 사용자 정의 함수는 표준 라이브러리 함수와 동일한 기능을 제공하므로 내에서 부동 소수점을 비교할 수 있습니다. 지정된 공차 범위.
위 내용은 Python에서 거의 동일한 부동 소수점 숫자를 어떻게 정확하게 비교할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!