c++ 中求反正切的函数atan和atan2的差别?

运行下面的代码,结果不一样:
double angle=atan(5.0/-5.0);
double angle_=atan2(5.0,-5.0);
cout<<angle<<" "<<angle_<<endl
为什么?

第一个结果是对的,第二个结果明显是错的。

貌似一个是弧度,一个是角度的区别追问

明显不是啊~

追答

atan2
返回给定的 X 及 Y 坐标值的反正切值。反正切的角度值等于 X 轴与通过原点和给定坐标点 (Y坐标, X坐标) 的直线之间的夹角。结果以弧度表示并介于 -pi 到 pi 之间(不包括 -pi)。

atan2(a, b) 与 atan(a/b)稍有不同,atan2(a,b)的取值范围介于 -pi 到 pi 之间(不包括 -pi),

而atan(a/b)的取值范围介于-pi/2到pi/2之间(不包括±pi/2)。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答