我试图计算math.exp(9500)
,但遇到了一个OverflowError: math range error
(大约是6.3e4125)。从this question看来,这似乎是由于一个太大的浮点数,公认的答案是“(…)稍微超出了double的范围,所以它导致了溢出”。在
我知道Python可以处理任意大的整数(long类型),有没有办法用同样的方式处理任意大的浮点?在
编辑:我最初的问题是关于使用整数来计算exp(n),但正如Eric Duminil所说,最简单的方法是3**n
,它没有提供任何有用的结果。我知道这个问题可能与this one相似。在
我认为不可能用整数来近似
exp()
。如果使用3**n
而不是2.71828182845905**n
,则计算将完全无用。在一个可能的解决方案是使用^{} 。根据文件:
也可以指定所需精度:
^{pr2}$使用
exp(9500).evalf(5000)
,甚至可以得到最接近exp(9500)
的整数。在下面是使用Python计算结果的另一种方法:
太大了。在
但是},它是{}:
^{pr2}$log10(exp(9500))
不是。在Python中不能这样计算它,但是log10(exp(9500))
是{这样,您就可以计算出在普通Python中},而不需要任何库!在
exp(9500)
是{尝试
long
类型。在int
类型自3.0版本起已从python中删除。在相关问题 更多 >
编程相关推荐