Python "溢出错误:数学范围错误

2 投票
1 回答
7268 浏览
提问于 2025-04-18 01:05

我刚开始学Python,遇到了一些问题:

错误追踪(最近的调用出错):

b = 1-exp(n)*erfc(n**0.5)

溢出错误:数学范围错误

我需要计算'b',而'n'的值一直在增加,但我不知道该怎么解决这个问题。

有人能帮帮我吗?

1 个回答

3

虽然最后的答案很小,但exp(n)的值会变得非常大,迅速超过了浮点数能表示的范围。例如:

from math import exp, erfc
n=100
b = 1-exp(n)*erfc(n**0.5)
print b
print exp(n)

会产生:

0.943859007256

2.68811714182e+43

如果你需要处理很大的数字,可以使用numpy这个库。

你也可以选择对两边取对数,这样就可以去掉exp这个项,方便计算。

撰写回答