トピック
STiNGER STiNGER8901

三角関数 マイナス0の謎

? COS(RAD(270)) を実行すると、-0が。 ? SGN(COS(RAD(270))) で、-1が返って来ます。 ゼロのはずなのに!?
3そうだね
プレイ済み
返信[1]
親投稿
STiNGER STiNGER8901
というのは、パズルゲームで四方向に隣接したマスの判定に三角関数を使おうとしていて困っているのです。 真上のマスだけ左斜め上になったりちゃんと真上になったりします。 なんとか安定させたいのてすが・・・
1そうだね
プレイ済み
返信[2]
親投稿
みむ*mim hidemimtp
R DIV 1 すればいいかも。
1そうだね
プレイ済み
返信[3]
親投稿
myu314 myu314
単純に誤差ですかね。 ラジアンってπ含むのでどうしても誤差は出ちゃいます。 この場合だとSGNをいじっちゃうのが楽かな? DEF SGN2(X) IF ABS(X)<POW(2,-52) THEN RETURN 0 RETURN SGN(X) END
1そうだね
プレイ済み
返信[4]
親投稿
STiNGER STiNGER8901
やっぱりπ絡みの誤差なんですね。 DIV 1をかませてなんとか解決できました。 お二方、ありがとうございます。
1そうだね
プレイ済み