math.piのPython精度

Jokyjo

私は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]

編集
0

コメントを追加

0

関連記事