サイトアイコン Amelt.net

python:整数値の割り算が0になる場合の対処方法

This post is also available in: English-US (英語)

pythonで整数値の割り算が0になり、以下のようなエラーを吐く場合があります。
その対処方法をメモとして書いています。

# xxx はなんらかの変数
ValueError: xxx must be > 0

Pythonは、デフォルトでは分母よりも分子の方が大きいと 0 を出力するみたいで、float型で扱うことを指定するか、もしくは以下のように 1.0 を乗算すると、小数点付きの計算結果が得られるようです。

# アウトプットはint型で問題ない
>>> 10/10
1
# アウトプットはint型だと問題あり 
>>> 10/100
0
# float型で扱うことを指定してアウトプットをfloat型にするパターン
>>> float(10)/100
0.1
# 1.0を乗算して、アウトプットをfloat型にするパターン
>>> 10*1.0/100
0.1
# ちなみに、以下は計算結果0のアウトプットをfloat型に変換しているので0.0となる
>>> float(10/100)
0.0