exp, expf, expl

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
指数函数
exp
(C99)
(C99)
(C99)
(C99)
幂函数
(C99)
(C99)
三角及双曲函数
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
浮点数操作函数
(C99)
(C99)
(C99)
(C99)
分类
(C99)
(C99)
(C99)
宏常量
 
定义于头文件 <math.h>
float       expf( float arg );
(1) (C99 起)
double      exp( double arg );
(2)
long double expl( long double arg );
(3) (C99 起)
定义于头文件 <tgmath.h>
#define exp( arg )
(4) (C99 起)
1-3) 计算e(欧拉数,2.7182818)的arg次幂。
4) 通用类型宏:若arg拥有long double类型,则调用expl。否则,若arg拥有整数类型或double类型,则调用exp。否则,调用expf。若arg为复数或序数,则宏调用对应的复函数(cexpfcexpcexpl)。

目录

[编辑] 参数

arg - 浮点值

[编辑] 返回值

若无错误发生,则返回arg的底e指数(earg
)。

若因上溢发生值域错误,则返回+HUGE_VAL+HUGE_VALF+HUGE_VALL

若因下溢发生值域错误,则返回(舍入后的)正确结果。

[编辑] 错误处理

错误按指定于math_errhandling的方式汇报。

若实现支持IEEE浮点算术(IEC 60559),则

  • 若参数为±0,则返回1
  • 若参数为-∞,则返回+0
  • 若参数为+∞,则返回+∞
  • 若参数为NaN,则返回NaN

[编辑] 注意

对于IEEE兼容的double类型,保证若709.8 < arg则上溢,并保证若arg < -708.4则下溢。

[编辑] 示例

#include <stdio.h>
#include <math.h>
#include <float.h>
#include <errno.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
    printf("exp(1) = %f\n", exp(1));
    printf("FV of $100, continuously compounded at 3%% for 1 year = %f\n",
            100*exp(0.03));
    // 特殊值
    printf("exp(-0) = %f\n", exp(-0.0));
    printf("exp(-Inf) = %f\n", exp(-INFINITY));
    // 错误处理
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("exp(710) = %f\n", exp(710));
    if(errno == ERANGE) perror("    errno == ERANGE");
    if(fetestexcept(FE_OVERFLOW)) puts("    FE_OVERFLOW raised");
}

可能的输出:

exp(1) = 2.718282
FV of $100, continuously compounded at 3% for 1 year = 103.045453
exp(-0) = 1.000000
exp(-Inf) = 0.000000
exp(710) = inf
    errno == ERANGE: Numerical result out of range
    FE_OVERFLOW raised

[编辑] 参考

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12.6.1 The exp functions (p: 242)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • F.10.3.1 The exp functions (p: 520)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.6.1 The exp functions (p: 223)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • F.9.3.1 The exp functions (p: 458)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.5.4.1 The exp function

[编辑] 参阅

(C99)
(C99)
(C99)
计算2的给定幂 (2x
(函数) [编辑]
(C99)
(C99)
(C99)
计算e的给定幂减一 (ex-1
(函数) [编辑]

(C99)
(C99)
计算自然对数(底为e) (ln(x)
(函数) [编辑]
(C99)
(C99)
(C99)
计算复数的e底指数
(函数) [编辑]
expC++ 文档