0

Fortran 77でCOS()およびSIN()ライブラリを使用すると、奇妙な動作が発生します。次のように、操作を実行する番号を選択します。

DATA V , THETA , PI / 100 , 45 , 3.1416 /

THETA = THETA * PI/ 180.0
PRINT *, "THETA = " , THETA

VX = V * COS ( THETA )
VY = V * SIN ( THETA )

PRINT *, VX , VY 
END

調べてみると

COS(THETA)= COS(45)

いいえ

COS(0.7853)

同じことがSIN()にも当てはまります。では、なぜこれが起こるのでしょうか?

これは私の出力です:

THETA = 0.785400

  70.7105    70.7108
4

1 に答える 1

2

これらは正しい結果です。45度(ラジアンに変換)のcosを100で乗算し、45度(またはpi / 4ラジアン)のcosは0.7071067であるため、出力される期待値は70.7106です。

SINおよびCOS関数は、ラジアン単位の引数を取ります。正しい数式を使用して、入力値を度からラジアンに変換すると、変換された値に対して正しい結果が得られます。

どうすれば正しい変換ができるのか興味がありますが、正しいことをして正しい答えが得られたことに気づいていません。このコードを他の場所から取得しましたか?

于 2012-06-17T20:34:43.160 に答える