计算
x
(
atan
、
atanf
和
atanl
)的反正切值或
y
/
x
(
atan2
、
atan2f
和
atan2l
)的反正切值。
double atan( double x );
float atanf( float x );
long double atanl( long double x );
#define atan(X) // Requires C11 or higher
float atan( float x ); // C++ only
long double atan( long double x ); // C++ only
double atan2( double y, double x );
float atan2f( float y, float x );
long double atan2l( long double y, long double x );
#define atan2(Y, X) // Requires C11 or higher
float atan2( float y, float x ); // C++ only
long double atan2( long double y, long double x ); // C++ only
任意数字。
atan
返回 -π/2 到 π/2 弧度范围内的 x
的反正切值。 atan2
返回 -π 到 π 弧度范围内的 y
/x
的反正切值。 如果 x
为 0,则 atan
返回 0。 如果 atan2
的这两个参数均为 0,则函数返回 0。 所有结果都都以弧度为单位。
atan2
使用这两个参数符号来确定返回值的象限。
SEH 异常
_matherr
异常
atan
函数计算 x
的反正切值(反正切函数)。 atan2
计算 y
/x
的反正切值(假设 x
等于 0,如果 y
为正,则 atan2
返回 π/2;如果 y
为负,则返回 -π/2;如果 y
为 0,则返回 0)。
如果使用 <tgmath.h>
中的 atan
或 atan2
宏,自变量的类型将确定选择哪个版本的函数。 有关详细信息,请参阅泛型类型数学。
atan
具有使用流式处理 SIMD 扩展 2 (SSE2) 的实现。 有关使用 SSE2 实现的信息和限制,请参阅 _set_SSE2_enable
。
C++ 允许重载,因此你可以调用采用 float
或 long double
参数的 atan
和 atan2
重载。 在 C 程序中,除非使用 <tgmath.h>
宏来调用此函数,否则 atan
和 atan2
始终采用 double
参数并返回 double
。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
必需的标头 (C)
必需的标头 (C++)
y = atof( av[2] );
theta = atan2( y, x );
printf( "Arctangent of %f / %f: %f\n", y, x, theta );
return 0;
Arctangent of 5.000000: 1.373401
Arctangent of 0.500000 / 5.000000: 0.099669
数学和浮点支持
_matherr
_CIatan
_CIatan2