1. ホーム
  2. スクリプト・コラム
  3. パイソン

[解決済み】ZeroDivisionErrorの取得:Pythonのfloat除算

2022-01-16 12:36:10

質問

コードは次のとおりです。

import math

def top(  t):
    return ((.3 / 2) * t) / (.3 * math.sqrt(t))


t = 365/365
top= top(t)
print (top)

実行すると、エラーが発生します。

ZeroDivisionError: float division

解決方法は?

問題はここです。

t = 365/365

あなたは2つの整数を割っているので、pythonは整数の除算を使っています。整数の割り算では、商は切り捨てられます。例えば 364/365 は次のようになります。 0 . ( 365/365 と等しいので、動作します。 1 であり、それはやはり 1 を切り捨てた)。

代わりに、次のようにfloat分割を使用します。

t = 365.0/365.0