2014-01-25 1 views
1

파이썬에서 시리즈 계산에 문제가 있습니다. 여기서 15 번째 숫자 이후에 모두 실패합니다. 나는 Canopy를 사용하고있다.파이를 30 자리까지 계산해야하지만 15 번째 숫자가 모두 실패합니다.

# For Machin 
    mm = 0. 
    totalm1 = 0. 
    while mm <= 100: 
     machin1 = (16.)*(-1)**(mm)*((1./5)**(1+2.*mm))/(2.*mm+1) -(4.)*(-1)**(mm)*((1./239)**(1+2.*mm))/(2.*mm+1) 
     totalm1 += machin1 
     mm += 1 
    print "%50.50f" %totalm1 
: 4arctan (239분의 1) - 예

3.1415926535897932384626433832795028841971693993751 실제 PI 3.14159265358979444826559301873203366994857788085938 내 결과 3.1415926535897932384626433832795028841971XXXXXXXXXX 질문

등식 16arctan (1/5) 용

어떻게 해결할 수 있습니까?

답변

1

부동 소수점 숫자의 정확도는 약 15 자리입니다. 더 중요한 자릿수가 필요하면 임의 정밀도 수학 라이브러리를 사용하십시오. 내장 된 decimal 모듈이 적합하거나 더 많은 기능을 가진 것으로 보이는 mpmath을 시도해 볼 수 있습니다.

decimal 모듈 2의 제곱근을 계산의 예 : 나는 그런 일을 사용 가야합니까 어떻게

>>> import decimal 
>>> decimal.getcontext().prec = 50 # Compute with 50 digits of precision 
>>> decimal.Decimal('2') ** decimal.Decimal('0.5') 
Decimal('1.4142135623730950488016887242096980785696718753769') 
+0

를? –

+1

@ user3236112 : 관련 문서에서 더 잘 대답하는 질문입니다. 짧고 단순한 대답 : 문자열에서 초기화 된 임의 정밀도 숫자를 만들고 평소처럼 수학을 수행하십시오. – user2357112

+0

글쎄, 내가 혼란 스러웠다면, 난 겨우 3 주 전만해도 파이썬으로 수업을 시작했다. –

관련 문제