![](/img/trans.png)
[英]OverflowError: cannot convert float infinity to integer python3?
[英]How to fix this python error? OverflowError: cannot convert float infinity to integer
它给了我这个错误:
Traceback (most recent call last):
File "C:\Users\Public\SoundLog\Code\Código Python\SoundLog\Plugins\NoisePlugin.py", line 113, in onPaint
dc.DrawLine(valueWI, valueHI, valueWF, valueHF)
File "C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_gdi.py", line 3177, in DrawLine
return _gdi_.DC_DrawLine(*args, **kwargs)
OverflowError: cannot convert float infinity to integer
我怎样才能避免这种情况发生?
四个值valueWI, valueHI, valueWF, valueHF
设置为浮点无穷大。 只需将其截断为合理的值,例如,对于通用且完全本地的解决方案,请将您的DrawLine
调用更改为:
ALOT = 1e6
vals = [max(min(x, ALOT), -ALOT) for x in (valueWI, valueHI, valueWF, valueHF)]
dc.DrawLine(*vals)
当然,最好是了解哪个值是无穷大,以及为什么——并解决这个问题。 但是,这个更可取的课程非常依赖于应用程序,并且完全取决于导致计算这些值的代码,您完全没有给我们任何线索,因此我们很难提供有关此优选选项的非常具体的帮助!- )
溢出错误:无法将浮点无穷大转换为整数
def round_int(x):
if x in [float("-inf"),float("inf")]: return float("nan")
return int(round(x))
# TEST
print(round_int(174.919753086))
print(round_int(0))
print(round_int(float("inf")))
print(round_int(float("-inf")))
175
0
nan
nan
您需要发布一些代码以获得明确的答案,但我猜您的浮点值之一未设置。 因此,它可以保存任何值,例如NaN
(非数字),但在这种情况下,它被设置为无穷大。 这不能转换为整数,因此错误。
它将被转换为整数,因为最终屏幕是一个整数空间(例如 1600 x 1200 像素)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.