부동 소수점 숫자로 작업할 때 이 데이터 유형의 제한 사항을 고려하는 것이 중요합니다. 특히 부동 소수점 숫자는 특정 값을 정확히 나타내지 않아 반올림을 시도할 때 예상치 못한 결과가 발생할 수 있습니다.
문제: 부동 소수점 숫자를 소수점 이하 두 자리로 반올림하려고 하면 다음과 같은 문제가 발생할 수 있습니다. 다음 문제가 발생합니다.
>>> a 13.949999999999999 >>> round(a, 2) 13.949999999999999
부동 소수점 숫자가 값을 2의 거듭제곱으로 나눈 정수로 저장하기 때문에 문제가 발생합니다. 이 표현은 모든 값을 정확하게 캡처하지 못할 수도 있습니다. Python의 부동 소수점 유형에서 사용되는 배정밀도 숫자의 경우 정밀도는 53비트(16자리)인 반면, 일반 부동 소수점 숫자의 정밀도는 24비트(8자리)입니다.
해결책:
부동 소수점을 반올림할 때 소수점 이하 두 자리만 표시하려면 다음과 같은 몇 가지 옵션을 사용하세요. 사용 가능:
예:
>>> a = 13.946 >>> print("%.2f" % a) 13.95 >>> print("{:.2f}".format(a)) 13.95
round(a, 2)를 직접 사용하면 여전히 부동 소수점 정밀도 문제가 발생하지만 형식 지정에 유의하세요. %.2f 또는 {:.2f}가 포함된 문자열 값은 원하는 소수점 이하 두 자리 표현을 생성합니다.
위 내용은 Python에서 부동 소수점 숫자를 소수점 이하 두 자리로 정확하게 반올림하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!