加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – math.h的问题

发布时间:2020-12-16 06:45:51 所属栏目:百科 来源:网络整理
导读:我正在编写一个使用math.h库函数sin()和cos()的程序.但是,我注意到我得到了时髦的结果.在搜索并多次检查我的数学后,我决定用这个做一个简单的检查: int main(){ cout "sin(45.0) = " sin(45) endl; cout "cos(45.0) = " cos(45) endl; return 0;} 我得到这
我正在编写一个使用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)

解决方法

您应该在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!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读