Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ atan(-M_PI_2)没有返回-90º;_C++_Math - Fatal编程技术网

C++ atan(-M_PI_2)没有返回-90º;

C++ atan(-M_PI_2)没有返回-90º;,c++,math,C++,Math,我在计算cpp中的atan时遇到问题。M_PI已声明为3.14159 我的代码是: double distanceNormalized = 1;// set constant con check value double angle = atan(distanceNormalized * (-M_PI_2)); // atan(-PI/2) must be -1 in rad stringstream ss; ss << " Angle: " << angle*180

我在计算cpp中的atan时遇到问题。M_PI已声明为3.14159

我的代码是:

double distanceNormalized = 1;// set constant con check value
double angle = atan(distanceNormalized * (-M_PI_2)); // atan(-PI/2) must be -1 in rad

stringstream ss;
ss  << " Angle: " << angle*180/M_PI;
cout << ss << endl;
参考值表示[-pi/2,+pi/2]弧度。
发生了什么事?

您得到了正确的输出


-57.5184
如果假设
π=3.14
,则度等于
-1 rad
<代码>角度实际上是
-1 rad
。通过将其乘以
180
并除以
π
,得到正确的输出,可以将其转换为度


-57.5184
如果假设
π=3.14
,则度等于
-1 rad
<代码>角度实际上是
-1 rad
。通过将它乘以
180
并除以
π

将它转换为度,π至少是3.14159打印它,不仅是3.14仍然是相同的概念。我通常将这些常数定义为6或7位精度,这样我就可以在带浮点数的操作中使用它们,而不会溢出。(尽管我仍然在几乎所有地方使用
double
类型;v)好吧,你是对的,我正在检查另一个结果,M_PI_2*atan()。Thanks@Walter
-1*180/Pi=-57.5184
谷歌表示-57.2957,使用Pi作为3.14表示-57.3248。为了得到-57.5184,你必须使用π作为3.13。这种不准确的原因是什么?我认为他使用了3.14159而不是3.14:oPi至少是3.14159打印它,不仅仅是3.14仍然是相同的概念。我通常将这些常数定义为6或7位精度,这样我就可以在带浮点数的操作中使用它们,而不会溢出。(尽管我仍然在几乎所有地方使用
double
类型;v)好吧,你是对的,我正在检查另一个结果,M_PI_2*atan()。Thanks@Walter
-1*180/Pi=-57.5184
谷歌表示-57.2957,使用Pi作为3.14表示-57.3248。为了得到-57.5184,你必须使用π作为3.13。这种不准确的原因是什么?我认为他使用了3.14159而不是3.14:o
Angle: -57.5184