Pythonスクリプトでいくつかの計算を実行しようとしていますが、奇妙な結果が得られます。例えば:
0.03 // 0.01
>>> 2.0
数値をアップスケールすると、期待どおりの結果が得られます。
3.0 // 1.0
>>> 3.0
最初のコードスニペットの答えはである必要が3.0
あり、そうではないと確信してい2.0
ます。誰かがこれが起こっている理由とそれを修正する方法を私に説明できますか?
これは、浮動小数点エラーが原因です。上記のフロア分割では、余りは次のようにならないことに注意してください0
。
0.03 % 0.01
# 0.009999999999999998
したがって、代わりに次のように除算すると、
0.03 // 0.009
# 3.0
答えは正しいです。したがって、浮動小数点の制限により、余り0.03
がないと完全に割り切れません。0.01
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加