函数
<cmath> <ctgmath>

pow

double pow (double base, double exponent);
     double pow  (double base     , double exponent);      float powf (float base      , float exponent);long double powl (long double base, long double exponent);
     double pow (double base     , double exponent);      float pow (float base      , float exponent);long double pow (long double base, long double exponent);     double pow (double base     , int exponent);long double pow (long double base, int exponent);
     double pow (double base     , double exponent);      float pow (float base      , float exponent);long double pow (long double base, long double exponent);     double pow (Type1 base      , Type2 exponent);        // additional overloads
幂运算
返回baseexponent次幂

baseexponent

头文件 <tgmath.h> 提供了此函数的类型通用宏版本。
此函数在<complex><valarray>中被重载(参见 complex powvalarray pow)。
此标头(<cmath>)中还提供了其他 算术类型Type1Type2)的重载:这些重载有效地将参数转换为double进行计算,除非至少有一个参数是long double类型(在这种情况下,两者都转换为long double)。

此函数也在<complex><valarray>中被重载(参见 complex powvalarray pow)。

参数

base
基准值。
exponent
指数值。

返回值

base提高到exponent次幂的结果。

如果base 是有限的负数且exponent 是有限的但不是整数值,则会导致定义域错误
如果baseexponent都为零,在某些实现中也可能导致定义域错误
如果base为零且exponent为负,则可能导致定义域错误极点错误(或无错误,取决于库实现)。
如果结果过大或过小而无法用返回类型的值表示,该函数也可能导致范围错误

如果发生定义域错误,全局变量 errno 会被设置为 EDOM
如果发生极点范围错误,全局变量errno将设置为ERANGE
如果发生定义域错误
- 并且 math_errhandling 设置了 MATH_ERRNO:全局变量 errno 会被设置为 EDOM
- 并且 math_errhandling 设置了 MATH_ERREXCEPT:将引发 FE_INVALID

如果发生极点错误
- 并且 math_errhandling 设置了 MATH_ERRNO:全局变量 errno 被设置为 ERANGE
- 并且 math_errhandling 设置了 MATH_ERREXCEPT:将引发 FE_DIVBYZERO

如果发生范围错误
- 并且 math_errhandling 设置了 MATH_ERRNO:全局变量 errno 被设置为 ERANGE
- 并且math_errhandling设置为MATH_ERREXCEPT:将引发FE_OVERFLOWFE_UNDERFLOW

示例

1
2
3
4
5
6
7
8
9
10
11
/* pow example */
#include <stdio.h>      /* printf */
#include <math.h>       /* pow */

int main ()
{
  printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) );
  printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) );
  printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) );
  return 0;
}

输出

7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691


另见