1. ホーム
  2. python

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

2022-01-31 21:20:26

質問

以下のコードでは、非常に簡略化されています。私は ZeroDivisionError: float division 1以下の値ではエラーが発生します。その他、5/365がエラーになることもあります。 どうすれば直せますか?

import math

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


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

解決方法は?

問題はここです。

t = 365/365

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

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

t = 365.0/365.0