R言語の==の不可解な挙動
> cos(pi/4)
[1] 0.7071068
> sin(pi/4)
[1] 0.7071068
> cos(pi/4)==sin(pi/4)
[1] FALSE
これは、無理数どうしで、しょうがないかなと思うのですが、
> cos(pi/3)
[1] 0.5
> sin(pi/6)
[1] 0.5
> cos(pi/3)==sin(pi/6)
[1] FALSE
というように、有理数どうしで同じ値でも、等しくないとみなされます。どのような説明が可能でしょうか。ちなみに、
> (sqrt(2))^2
[1] 2
> (sqrt(2))^2==2
[1] FALSE
というように、整数どうしで同じ値でも、等しくないとみなされる場合があります。ぜひとも、一般論を教えてください。