三角函数sin返回负值
我在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()
。