在Fortran 77中使用COS()和SIN()的奇怪行为

时间:2012-06-17 17:26:29

标签: fortran

我在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

1 个答案:

答案 0 :(得分:1)

这些都是正确的结果。你得到45度的cos(转换为弧度)并乘以100,并且45度(或pi / 4弧度)的cos是0.7071067,因此打印出来的预期值是70.7106。

SIN和COS函数以弧度为参数。您可以使用正确的公式将输入值从度数转换为弧度,并为转换后的值提供正确的结果。

我很好奇你如何做正确的转换,并没有意识到你做了正确的事并得到了正确的答案。你从其他地方拿过这段代码吗?