Python 부동 소수점 반올림 오류
Python의 부동 소수점 숫자는 예상치 못한 반올림 오류로 이어질 수 있습니다. 부동 소수점 연산의 한계를 이해하는 것이 중요합니다.
제공된 코드에서 오류는 일부 숫자를 부동 소수점 숫자로 정확하게 표현할 수 없다는 사실에서 비롯됩니다. 정수를 부동 소수점으로 변환하고 100으로 나누면 결과 숫자가 근사화됩니다. 이 경우 0.29와 0.58에 대한 근사치는 각각 0.28과 0.57에 가까워 파일 이름이 동일했습니다.
이 동작은 거듭제곱을 사용하여 정확하게 표현할 수 없는 특정 숫자에만 영향을 미치기 때문에 체계적이지 않습니다. 둘 중. 이를 입증하기 위해 다음 Python 스크립트가 생성되었습니다.
import sys n = int(sys.argv[1]) for i in range(0, n + 1): a = int(100 * (float(i) / 100)) if i != a: print i, a
다양한 n 값에 대해 이 스크립트를 실행하면 반올림 오류가 특정 패턴을 따르지 않는다는 것을 알 수 있습니다.
이 문제는 부동 소수점 연산의 특성에 있습니다. 자세한 내용은 "모든 컴퓨터 과학자가 부동 소수점 연산에 대해 알아야 할 사항"을 참조하세요. 이 기사는 부동 소수점 연산의 복잡성과 한계에 대한 귀중한 통찰력을 제공합니다.
위 내용은 Python의 부동 소수점 숫자가 예기치 않은 반올림 오류를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!