atanf给了我错误的答案

时间:2017-12-16 13:17:31

标签: c++ visual-studio trigonometry

我正在从一本名为C ++ Modules for Gaming的书中练习第3章(功能)。 我无法做到的这一个问题是找到(2,4)的atanf(4/2),根据这本书和我的计算器应该回复' 63.42'度。

相反,它给了我1.107度。

这是我的代码:

#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;

void tani(float a,float b) //Finds the Tan inverse
{
    float res;
    res = atanf(b / a);
    cout << res << endl;

}

int main()
{
    cout << "Enter The Points X and Y: " << endl;
    float x, y;
    cin >> x >> y;                       //Input
    tani(x,y);                           //calling Function

}

2 个答案:

答案 0 :(得分:5)

atanf以及中的其他三角函数会返回radians的结果。 1.107弧度是63.426428度,所以你的代码是正确的。

您可以通过乘以180并除以Pi(M_PI提供的<cmath>常数)将弧度转换为度数:

cout << res * 180.0 / M_PI << endl;

答案 1 :(得分:1)

它以弧度给你正确的答案。简单地将它转换为Degree!

void tani(float a, float b) //Finds the Tan inverse
{
    float res;
    res = atanf(b/ a);
    cout << res *(180 / 3.14) << endl;
}