Python 3.4が大きな数の除算に対して間違った答えを出すのはなぜですか?また、分割可能性をテストするにはどうすればよいですか?

ズック

私のプログラムでは、除算を使用して結果が整数であるかどうかをテストし、分割可能性をテストしています。しかし、私は間違った答えを得ています。次に例を示します。

print(int(724815896270884803/61))

11882227807719424を与えます。

print(724815896270884803//61)

11882227807719423の正しい結果が得られます。

浮動小数点の結果が間違っているのはなぜですか。また、大きな数が61で割り切れるかどうかをテストするにはどうすればよいですか。本当に整数除算をしてから乗算して、等しいかどうかを確認する必要がありますか?

名前

2つのintをで除算/すると浮動小数点数生成されるため、浮動小数点の結果は間違っており、除算の正確な結果を正確にfloat正確な結果11882227807719423は、最も近い表現可能な数値に丸める必要があります。

In [1]: float(11882227807719423)
Out[1]: 1.1882227807719424e+16

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ