Je reçois une erreur de débordement lorsque j'essaie ce calcul, mais je n'arrive pas à comprendre pourquoi.
1-math.exp(-4*1000000*-0.0641515994108)
Le nombre que vous demandez à math.exp de calculer a, en décimal, plus de 110 000 chiffres. C'est légèrement en dehors de la plage d'un double, donc cela provoque un débordement.
Pour le réparer, utilisez:
try:
ans = math.exp(200000)
except OverflowError:
ans = float('inf')
Je pense que la valeur devient trop grande pour tenir dans un double
dans python c'est pourquoi vous obtenez le OverflowError
. La plus grande valeur que je peux calculer le exp
of sur ma machine en Python est juste légèrement plus grand que 709.78271.
Cela peut vous donner une idée pourquoi:
http://www.wolframalpha.com/input/?i=math.exp%28-4*1000000*-0.0641515994108%29
Remarquez l'exposant 111442.