我正在编写一个使用math.h库中的函数sin()和cos()的程序。然而,我注意到我得到了时髦的结果。在多次搜索和检查我的数学之后,我决定用这个做一个简单的检查:
int main()
{
cout << "sin(45.0) = " << sin(45) << endl;
cout << "cos(45.0) = " << cos(45) << endl;
return 0;
}我得到了这个输出:
sin(45) = 0.850904
cos(45) = 0.525322这些应该是相等的,对吧?math.h库有什么特别之处吗?我做错了什么吗?
以下是WolframAlpha中的方程式:
sin(45)
cos(45)
发布于 2012-02-19 17:15:58
您应该在C++中使用cmath,而不是旧的C标头。
std::sin()和std::cos()都采用浮点值表示radian中的角度。
The GCC version of this file includes a handy constant for π (在C++标准中不存在,但是),它将使您更容易将度数转换为弧度:
#include <cmath>
#include <iostream>
double degrees_to_radian(double deg)
{
return deg * M_PI / 180.0;
}
int main()
{
std::cout << "sin(45.0) = " << std::sin(degrees_to_radian(45)) << std::endl;
std::cout << "cos(45.0) = " << std::cos(degrees_to_radian(45)) << std::endl;
}See it run!
发布于 2012-02-19 17:03:23
sin和cos期望输入弧度,而不是度数。
试试这个:
sin(degrees * pi / 180)
发布于 2012-02-19 17:02:38
三角函数使用radians,而不是度数。
https://stackoverflow.com/questions/9347947
复制相似问题