atan、atanf、atanl、atan2、atan2f、atan2l
計算 x 的反正切值 (atan、 atanf和 atanl) 或 y/x 的反正切值 (atan2、 atan2f和 atan2l)。
double atan(
double x
);
float atan(
float x
); // C++ only
long double atan(
long double x
); // C++ only
double atan2(
double y,
double x
);
float atan2(
float y,
float x
); // C++ only
long double atan2(
long double y,
long double x
); // C++ only
float atanf(
float x
);
long double atanl(
long double x
);
float atan2f(
float y,
float x
);
long double atan2l(
long double y,
long double x
);
參數
- x, y
任何數字。
傳回值
atan 傳回 x 的反正切值 (在 – π/2 到 π/2 的範圍中)。 atan2 傳回 y/x 的反正切值 (在 – π 到 π 的範圍中)。 如果 x 為 0, atan 會傳回 0。 如果 atan2 的兩個參數都是 0,則函式會傳回 0。 所有結果都是以弧度為單位。
atan2 使用兩個參數的正負號判斷傳回值的象限。
輸入 |
SEH 例外狀況 |
Matherr 例外狀況 |
---|---|---|
± QNAN,IND |
無 |
_DOMAIN |
備註
atan 函式會計算 x 的反正切值 (反正切函數函式)。 atan2 計算 y/x 的反正切值 (x 等於 0 時,如果 y 為正數, atan2 會傳回 π/2;如果 y 為負數,會傳回 - π/2;如果 y 是 0,會傳回 0)。
atan 會使用 Streaming SIMD Extensions 2(SSE2) 的實作。 如需有關使用 SSE2 實作的詳細資訊和限制,請參閱 _set_SSE2_enable。
因為 C++ 允許多載,您可以呼叫 atan 和 atan2 的多載。 在 C 程式,atan 和 atan2 一律接受並傳回 double 值。
需求
常式 |
必要的標頭 |
---|---|
atan, atan2, atanf, atan2f, atanl, atan2l |
<math.h> |
範例
// crt_atan.c
// arguments: 5 0.5
#include <math.h>
#include <stdio.h>
#include <errno.h>
int main( int ac, char* av[] )
{
double x, y, theta;
if( ac != 3 ){
fprintf( stderr, "Usage: %s <x> <y>\n", av[0] );
return 1;
}
x = atof( av[1] );
theta = atan( x );
printf( "Arctangent of %f: %f\n", x, theta );
y = atof( av[2] );
theta = atan2( y, x );
printf( "Arctangent of %f / %f: %f\n", y, x, theta );
return 0;
}
.NET Framework 對等用法
請參閱
參考
cos、cosf、cosl、cosh、coshf、coshl
sin、sinf、sinl、sinh、sinhf、sinhl