L'augmentation de précision en virgule flottante en Python

Je travaille sur un projet pour calculer la Leibniz approximation de pi avec le code ci-dessous:

def pi(precision):
    sign = True
    ret = 0
    for i in range(1,precision+1):
        odd = 2 * i - 1
        if sign:
            ret += 1.0 / odd
        else:
            ret -= 1.0 / odd
        sign = not sign
    return ret

Toutefois, la valeur de sortie a toujours été de 12 chiffres. Comment puis-je augmenter la précision (par exemple, plus de chiffres) du calcul? Python soutien plus précis floating points, ou devrai-je utiliser certains de bibliothèque externe?

Quelle étrange de la valeur de pi: >>> repr(pi(17)) rendements '0.8000913788523872'
Oui, elle se rapproche d'un quart de pi. voir ici: en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80
Drôle de méthode pour la mise en oeuvre de l'évaluation, il converge si lent.

OriginalL'auteur hkk | 2014-01-12