2013-06-03 3 views
6

파이썬에서 Ramanujan 공식 중 하나를 사용하여 임의의 정밀도로 파이를 계산하려고합니다 : http://en.wikipedia.org/wiki/Approximations_of_%CF%80#20th_century. 기본적으로 팩토리얼과 고정밀 부동 소수점 나누기가 많이 필요합니다. http://pastie.org/private/pa6ijmoowiwiw4xwiqmq파이를 십진법으로 파이 계산하기

나는 파이의 열 다섯 자리 주위 어딘가에 오류를 받고 있어요 (3.1415926535897930 그것은 3.1415926535897932해야한다) :

여기에 지금까지 내 코드입니다. 왜 그런 일이 일어나는지 조언 해 줄 수 있습니까? 10 진수 형식을 사용 중이며 문서에서 임의의 정밀도 부동 및 정수를 허용한다고 말합니다.

추신 : 숙제이므로 다른 수식을 사용할 수 없습니다. PSS : 나는 파이썬 2.7

감사합니다 :)

+2

'Decimal (sqrt (2))'는'sqrt (2)'를 사용하지 않고 '십진법 '? 'Decimal (2) .sqrt() '로 시도하십시오. – Bakuriu

답변

3

사용 Decimal(2).sqrt() 대신 Decimal(sqrt(2))을 사용하고 있습니다.

처음 1000 자리를 확인해도 정상적으로 작동하는 것 같습니다. 그건 그렇고, 어떤 이유로 코드가 1000 대신 1007 소수점을 출력합니다.

+0

그래, 나는 단지 정밀도를 추가하여 확신을 준다. 고마워요 :) – GeneralFailure

관련 문제