私のプログラムでは、除算を使用して結果が整数であるかどうかをテストし、分割可能性をテストしています。しかし、私は間違った答えを得ています。次に例を示します。
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]
コメントを追加