2011-01-19 19 views

risposta

29

decimal modulo è utile.

>>> from decimal import * 
>>> getcontext().prec = 100 
>>> Decimal(2).sqrt() 
Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573') 
+0

perfetto, esattamente quello che stavo cercando. grazie! – clayton33

7

È possibile utilizzare il modulo decimal per numeri a precisione arbitraria:

import decimal 

d2 = decimal.Decimal(2) 

# Add a context with an arbitrary precision of 100 
dot100 = decimal.Context(prec=100) 

print d2.sqrt(dot100) 

Se è necessario lo stesso tipo di capacità accoppiato alla velocità, ci sono alcune altre opzioni: [gmpy], 2, cdecimal .

1

È possibile utilizzare gmpy2.

import gmpy2 
ctx = gmpy2.get_context() 
ctx.precision = 300 
print(gmpy2.sqrt(2)) 
0

È possibile utilizzare sympy e evalf()

from sympy import sqrt 
print(sqrt(2).evalf(101)) 
Problemi correlati