찾다

 >  Q&A  >  본문

Python의 eval 문제

그림에 표시된 것처럼 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로 변경되는 이유는 무엇입니까?

仅有的幸福仅有的幸福2716일 전1027

모든 응답(3)나는 대답할 것이다

  • phpcn_u1582

    phpcn_u15822017-06-22 11:54:25

    일반적으로 컴퓨터에서 직접 사용할 수 없습니다. == 두 개의 부동 소수점 숫자가 같은지 비교하세요.

    부동소수점 값은 컴퓨터에서 오류가 있기 때문이죠.

    Python에는 고정밀 부동 소수점 계산을 위한 decimalfraction 2개의 모듈이 있습니다.


    으아악

    회신하다
    0
  • 仅有的幸福

    仅有的幸福2017-06-22 11:54:25

    이것은 eval과 관련이 없으며 주로 정확성의 문제입니다. 이는 모든 프로그래밍 언어에서 발생합니다. 0.3-0.1 == 0.2를 시도하면 Baidu JavaScript 0.2-0.1 문제가 직접 반환됩니다. 그런 다음 "컴퓨터 구성의 원리" 》초기 데이터 표현을 살펴보세요.

    https://stackoverflow.com/que... 이것은 많은 투표를 받은 답변입니다.

    회신하다
    0
  • 为情所困

    为情所困2017-06-22 11:54:25

    으아악

    회신하다
    0
  • 취소회신하다