1. ホーム
  2. python

OverflowError: intが大きすぎてfloatに変換できない場合の対処法

2022-02-13 23:20:57
<パス

コードを書いているときに、OverflowError: int too large to convert to float 問題が発生し、検索した結果、解決策が見つかりました。
解決方法
from decimal import Decimal #計算の精緻化
from decimal import getcontext #小数点以下の桁数を自分で設定する

'''n=np.math.factorial(30000) "です。
m=np.math.factorial(200)
mn=np.math.factorial(29800)
rest =n/(m*mn)''である。
この場合、C(m, n)を求めるのにエラーが出ますが、次のようにすれば、求めることができます。

from decimal import Decimal #計算を洗練させる
from decimal import getcontext #保持する小数点以下の桁数、任意に設定可能
n=Decimal (np.math.factorial(30000))
m=10進数(np.math.factor(200))
mn=10進数(np.math.factor(29800))
残り =n/(m*mn)
print(rest)