반복 싸인을 수행 할 때 파이썬이 어떻게 내 계산기처럼 동작하는지 모르겠습니다.파이썬으로 계산기 결과 복제하기
내 파이썬 코드 :
는number = float(.565)
pi = float(math.pi)
for j in range(25):
number = round(math.sin(number*pi), 16)
이 0.446445551265를 반환합니다.
계산기로 동일한 작업을 수행하면 0.4464454868이됩니다.
round()
에 사용하는 정밀도에 관계없이 계산기와 같은 결과를 얻을 수 없습니다.
또한 Decimal 라이브러리를 사용해 보았지만 더 나은 결과를 얻지 못했습니다. 어떤 아이디어? 80 진수 정밀도 실행
계산기의 결과가 정확하다는 것을 어떻게 알 수 있습니까? –
계산기가 제공하는 것과 실행중인 프로그램의 차이가'10e-8'보다 작습니다. 차이점은 누가 신경 쓰겠습니까? 부동 소수점의 중요한 점 중 하나는 정밀도가 제한된 실수의 표현으로 작업하고 있다는 것입니다. 계산기와 컴퓨터 사이의 내부 표현의 작은 차이점은 누적 효과로 인해 나타나는 작은 차이에 책임이 있습니다. –
또한, pi는 항상 어떤 점에서 반올림되어야하므로 불일치의 원인은 'math.pi'와 계산기의'π '버튼의 정밀도가 동일하지 않은 것일 수 있습니다. –