부동 소수점을 두 개의 소수점으로 제한: 부동 소수점 부정확성과 대체 솔루션
예상된 부동 소수점 값과 표시된 부동 소수점 값 사이에 불일치가 발생하는 것은 개발자가 직면하는 일반적인 문제. Python에서 제공된 코드는 'a' 값을 13.95로 반올림하는 것을 목표로 하지만 부동 소수점 표현의 한계로 인해 약간 다른 결과를 생성합니다.
부동 소수점 숫자는 Python에서 실수를 나타내는 데 사용됩니다. 바이너리 컴퓨터 시스템. 그러나 모든 숫자를 완전한 정밀도로 표현할 수 있는 것은 아니므로 반올림 오류가 발생합니다. 'a'의 경우 컴퓨터가 13.95를 정확하게 표현할 수 없는 이진 분수로 저장하기 때문에 반올림된 값은 원래 값과 동일합니다.
Python의 배정밀도 부동 소수점 유형은 53비트의 부동 소수점 형식을 사용합니다. 일반 부동 소수점은 24비트를 가지지만 정밀도가 높습니다. 즉, 부동 소수점 숫자의 정밀도는 배정도의 경우 십진수 16자리, 일반 부동 소수점의 경우 십진수 8자리로 제한됩니다.
이 문제를 해결하기 위해 다음과 같은 몇 가지 접근 방식을 고려할 수 있습니다.
표시 형식 지정
'a'를 소수점 이하 두 자리만 표시하려면 다음과 같은 문자열 형식 지정 기술을 사용하세요. as:
print("%.2f" % a) # Output: 13.95 print("{:.2f}".format(a)) # Output: 13.95
Decimal Type
정확한 정밀도가 필요한 경우,decimal 모듈에서 10진수 유형을 사용하는 것을 고려하세요:
import decimal decimal.Decimal('13.95') # Output: Decimal('13.95')
정수 표현
정확도가 중요한 통화 값의 경우 소수점 이하 두 자리까지만 필요합니다. 정수를 사용하여 값을 센트로 저장하고 100으로 나누어 달러로 변환합니다.
value_in_cents = 1395 # Store value as an integer value_in_dollars = value_in_cents / 100 # Output: 13.95
위 내용은 Python에서 부동 소수점 숫자를 소수점 이하 두 자리로 정확하게 제한하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!