1. ホーム
  2. python

[解決済み] この Python のエラーを修正するにはどうすればよいですか?OverflowError: float infinity を整数に変換できない。

2022-02-05 23:08:23

質問

というエラーが出ます。

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

どうすればこのようなことが起きないようにできますか?

解決方法は?

4つの値のうち1つ valueWI, valueHI, valueWF, valueHF には浮動小数点数の無限大が設定されています。 これを何か妥当なものに切り詰めてください。例えば、一般的で完全に局所的な解を求めるなら、あなたの DrawLine を呼び出します。

ALOT = 1e6
vals = [max(min(x, ALOT), -ALOT) for x in (valueWI, valueHI, valueWF, valueHF)]
dc.DrawLine(*vals)

もちろん、どの値がなぜ無限大なのかを理解し、それを修正することがベストです。 しかし、この望ましいコースは非常にアプリケーションに依存し、これらの値の計算につながるコードに完全に依存します。)