共用方式為


atan、atanf、atanl、atan2、atan2f、atan2l

計算 x 的反正切值 (atanatanfatanl) 或 y/x 的反正切值 (atan2atan2fatan2l)。

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++ 允許多載,您可以呼叫 atanatan2 的多載。 在 C 程式,atanatan2 一律接受並傳回 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 對等用法

請參閱

參考

浮點支援

acos、acosf、acosl

asin、asinf、asinl

cos、cosf、cosl、cosh、coshf、coshl

_matherr

sin、sinf、sinl、sinh、sinhf、sinhl

tan、tanf、tanl、tanh、tanhf、tanhl

_CIatan

_CIatan2