Depuis la page de documentation de Décimal Je pensais qu'une fois que l'on utilisait des décimales pour calculer, le résultat serait correct et sans erreur flottante.
Mais quand j'essaie cette équation
from decimal import Decimal, getcontext
getcontext().prec = 250
a = Decimal('6')
b = Decimal('500000')
b = a ** b
print('prec: ' + str(getcontext().prec) + ', ', end='')
print(b.ln() / a.ln())
Cela me donne un résultat différent !
Je veux calculer le chiffre de 6**500000
en représentation en base 6, donc le résultat attendu serait int(b.ln() / a.ln()) + 1
qui devrait être 500001. Cependant, lorsque je fixe le préc à 250, le résultat obtenu est erroné. Comment puis-je résoudre ce problème ?
De même, si je veux sortir le résultat sans la notation scientifique (c'est à dire 5E+5
), que dois-je faire ?