三角函数sin返回负值

3 投票
4 回答
4229 浏览
提问于 2025-04-16 11:14

我在Python里写了这个代码

def hitsin(a):
    a = a*57.3
    return math.sin(a)

所以每当我输入hitsin(x)的时候,x会被转换成弧度。我有点困惑,当我输入hitsin(90)的时候,结果不是1或者接近1的数字,而是一个负数(结果是-0.9971392129043587)。我是不是做错了什么?

另外,我也尝试在C语言里写了类似的代码

#include <stdio.h>
#include <math.h>

int main(){
    float degree;
    float result;

    degree = 90;
    degree = degree*57.3;
    result  = cos(result);

    printf("%f",result);

    return 1;
}

但结果还是一样。

真诚的,
Giri

4 个回答

1

你在单位转换上出错了:

要把角度转换成弧度:

radians = (2 * pi * degrees) / 360

这样就可以得到:

radians = degrees / 57.295... = degrees * 0.01745...
6

你需要用57.3去除,而不是去乘。57.3是一个更接近180/π的值。

13

你应该用 180/pi 来做除法,而不是乘法。在Python中,你可以使用 math.radians() 来把角度转换成弧度:

def hitsin(a):
    return math.sin(math.radians(a))
hitsin(90)
# 1.0

另外,我怀疑C语言的代码和Python的代码结果是一样的,因为它用的是 cos() 而不是 sin()

撰写回答