首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >math.h的问题

math.h的问题
EN

Stack Overflow用户
提问于 2012-02-19 17:01:24
回答 5查看 11K关注 0票数 3

我正在编写一个使用math.h库中的函数sin()cos()的程序。然而,我注意到我得到了时髦的结果。在多次搜索和检查我的数学之后,我决定用这个做一个简单的检查:

代码语言:javascript
复制
int main()
{
    cout << "sin(45.0) = " << sin(45) << endl;
    cout << "cos(45.0) = " << cos(45) << endl;

    return 0;
}

我得到了这个输出:

代码语言:javascript
复制
 sin(45) = 0.850904
 cos(45) = 0.525322

这些应该是相等的,对吧?math.h库有什么特别之处吗?我做错了什么吗?

以下是WolframAlpha中的方程式:

sin(45)

cos(45)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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++标准中不存在,但是),它将使您更容易将度数转换为弧度:

代码语言:javascript
复制
#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!

票数 9
EN

Stack Overflow用户

发布于 2012-02-19 17:03:23

sincos期望输入弧度,而不是度数。

试试这个:

sin(degrees * pi / 180)

票数 9
EN

Stack Overflow用户

发布于 2012-02-19 17:02:38

三角函数使用radians,而不是度数。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9347947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档