Exception Python中两种不同的浮点溢出
我正在用python计算Exception Python中两种不同的浮点溢出,exception,floating-point,overflow,Exception,Floating Point,Overflow,我正在用python计算(1e308)**2和(1e308)*2进行测试。我也希望如此 两者都产生溢出,或 两者都产生inf 但是,(1e308)**2显示溢出异常,而(1e308)*2在不触发任何异常的情况下返回inf。有没有解释为什么他们行为不同?谢谢 In [98]: 1e308**2 --------------------------------------------------------------------------- OverflowError
(1e308)**2
和(1e308)*2
进行测试。我也希望如此
inf
李>
但是,(1e308)**2
显示溢出异常,而(1e308)*2
在不触发任何异常的情况下返回inf
。有没有解释为什么他们行为不同?谢谢
In [98]: 1e308**2
---------------------------------------------------------------------------
OverflowError Traceback (most recent call last)
<ipython-input-98-29e84f241b45> in <module>()
----> 1 1e308**2
OverflowError: (34, 'Result too large')
In [99]: 1e308*2
Out[99]: inf
[98]中的1e308**2
---------------------------------------------------------------------------
溢出错误回溯(上次最近调用)
在()
---->1e308**2
溢出错误:(34,‘结果太大’)
In[99]:1e308*2
Out[99]:inf
主要是历史记录,再加上向后兼容性限制,很难在此处更改行为。有些人首先依靠1e308*1e308
来获得无穷大。请参阅和链接问题以进行讨论