私はPythonでコーディングしていて、奇妙なバグを見つけました:
import math
print(math.tan(math.pi/4) == 1)
math.tan(math.pi / 4)は0.9999999999であるため、Falseを出力します。
Pythonがそのような動作を示す理由を知っていますか?つまり、精度の問題以外の理由がある場合はどうなりますか?
ありがとう!
これはPythonに翻訳されたRFAQ7.31です。
http://www.hep.by/gnu/r-patched/r-faq/R-FAQ_82.html
Pythonでのその例では、同じ結果が得られます。
>>> a = math.sqrt(2)
>>> a*a - 2
4.440892098500626e-16
接線の例の違いも非常に小さいです。
>>> math.tan(math.pi/4) - 1
-1.1102230246251565e-16
そして、4で除算し、角度の日焼けを取ることに関連するすべての浮動小数点演算によって累積されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加