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

3
当我尝试进行这个计算时,出现了溢出错误。
output=math.exp(1391.12694245)*100

我知道这是因为使用的数字“超出了double类型的范围”导致的。 但是否有解决方法来获取输出值? 有人可以帮忙吗?


它的无穷大值是正确的。 - Edison Augusthy
使用 from decimal import Decimal; Decimal(1391.12694245).exp()*100 - TessellatingHeckler
你能提供更多有关你尝试解决的问题的信息吗?对于大多数实际任务来说,普通的 float 范围已经足够了,使用扩展精度通常都不是正确的解决方案 - 可能只需要重新构思你的计算以避免溢出问题。 - Mark Dickinson
1个回答

1
使用NumPy的额外精度浮点数:
import numpy as np
np.exp(np.array([1391.12694245],dtype=np.float128))*100
# array([ 1.4413011e+606], dtype=float128)

2
这是平台特定的:float128并非所有平台都可用(即使存在时通常也不是128位浮点类型)。 - Mark Dickinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接