web-dev-qa-db-ja.com

ラジアンから度への変換

C++で簡単な三角関数を計算しようとしています。以下は私がこれで抱えている問題の例です。私の知る限り、C++は度ではなくラジアンで動作します。したがって、ラジアンから度への変換は、180を掛けてpiで割る単純なケースになるはずです。簡単なテストはtan(45)です。これは1と等しくなるはずです。ただし、次のプログラムは92.8063の値を生成します...

#include <iostream>
using namespace std;

#include <math.h>

int main(){
    double a,b;
    a = tan(45);
    b = a * 180 / 3.14159265;
    cout << b;
    return 0;
}

なにが問題ですか?

9
Matt

あなたはそれを逆にやっています。 tanの-​​outputに数式を適用しないでください。parameterに適用してください。

また、piを乗算して180で除算する必要があります。逆も同様です。

14
Mark Ransom

角度はinputからtanです。あなたが望んでいるのは:

a = 45 * 3.141592653589793 / 180.0;
b = tan(a);
cout << b << endl;
6

ラジアンをtan関数に渡す必要があります。また、ラジアンの学位は間違っています。

 a = tan(45 * 3.14159265 / 180.);
4

Tan accepts角度であり、商を返します。 notはその逆です。あなたが欲しい

a = tan(45*3.14159265/180); // Now a is equal to 1.
2