Sto provando a trovare la radice quadrata da 2 a 100 posizioni decimali, ma per impostazione predefinita mostra solo 10 come, come posso cambiarlo?come posso mostrare un numero irrazionale a 100 posizioni decimali in python?
14
A
risposta
29
decimal modulo è utile.
>>> from decimal import *
>>> getcontext().prec = 100
>>> Decimal(2).sqrt()
Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573')
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))
perfetto, esattamente quello che stavo cercando. grazie! – clayton33