그림에 표시된 것처럼 Python2.7이 eval을 사용하여 부동 소수점 표현식을 계산할 때,
으아악온라인에서 답변을 찾을 수 없어서 매우 혼란스럽습니다. 안내해 주세요.
업데이트:
또 다른 질문이 있습니다.
a=0.3-0.1, print(a) 출력 0.19999999999999998; b=0.2,
print('%s==%s'%(a,b)) 출력 0.2 ==0.2,
문자열 형식을 지정할 때 0.19999999999999998에서 0.2로 변경되는 이유는 무엇입니까?
phpcn_u15822017-06-22 11:54:25
일반적으로 컴퓨터에서 직접 사용할 수 없습니다. ==
두 개의 부동 소수점 숫자가 같은지 비교하세요.
부동소수점 값은 컴퓨터에서 오류가 있기 때문이죠.
Python에는 고정밀 부동 소수점 계산을 위한 decimal
和 fraction
2개의 모듈이 있습니다.
예
으아악仅有的幸福2017-06-22 11:54:25
이것은 eval과 관련이 없으며 주로 정확성의 문제입니다. 이는 모든 프로그래밍 언어에서 발생합니다. 0.3-0.1 == 0.2를 시도하면 Baidu JavaScript 0.2-0.1 문제가 직접 반환됩니다. 그런 다음 "컴퓨터 구성의 원리" 》초기 데이터 표현을 살펴보세요.
https://stackoverflow.com/que... 이것은 많은 투표를 받은 답변입니다.