📜  expm1, expm1f, expm1l C 中的函数

📅  最后修改于: 2022-05-13 01:54:35.843000             🧑  作者: Mango

expm1, expm1f, expm1l C 中的函数

expm1()、expm1f()、expm1l() 是在 C99 中引入的,可以在 头文件中找到。这些用于计算欧拉数, e (2.7182818) 的幂等于提供的参数减去 1.0,即 e x – 1。

例子:

句法:

参数:

FunctionParameter
expm1(x)x ⇒ float
expm1f(x)x ⇒ double
expm1l(x)x ⇒ long double

返回值:

1. 如果没有错误发生:

FunctionReturn Value
expm1(x)ex – 1 ⇒ float
expm1f(x)ex-1 ⇒ double
expm1l(x)ex – 1 ⇒ long double

2. 如果溢出导致范围错误:

FunctionReturn Value
expm1(x) +HUGE_VAL
expm1f(x)+HUGE_VALF
expm1l(x)+HUGE_VALL

3. 如果下溢导致范围错误:如果下溢导致范围错误,则返回四舍五入的结果。

4. 异常情况:报告的错误按照math_errhandling中的规定处理。

ParameterReturn Value
±0±0
NaNNaN
-∞-1
+∞+∞

示例 1:下面是实现 exp1() 的 C 程序:

C
// C program to implement 
// exp1()
#include 
#include 
  
// Driver code
int main()
{
    double arg = 2.2310233;
    printf("%lf\n", 
            expm1(arg));
    return 0;
}


C
// C program to implement
// exp1f()
#include 
#include 
  
// Driver code
int main()
{
    float arg = 4.121;
    printf("%f\n", 
            expm1f(arg));
    return 0;
}


C
// C program to implement
// exp1l()
#include 
#include 
  
// Driver code
int main()
{
    long double arg = 5.212323323441;
    printf("%Lf\n", 
            expm1l(arg));
    return 0;
}


输出
8.309388

示例 2:下面是实现 exp1f() 的 C 程序:

C

// C program to implement
// exp1f()
#include 
#include 
  
// Driver code
int main()
{
    float arg = 4.121;
    printf("%f\n", 
            expm1f(arg));
    return 0;
}
输出
60.620819

示例 3:下面是实现 exp1l() 的 C 程序:

C

// C program to implement
// exp1l()
#include 
#include 
  
// Driver code
int main()
{
    long double arg = 5.212323323441;
    printf("%Lf\n", 
            expm1l(arg));
    return 0;
}
输出
182.519939

为什么要使用 expm1、expm1f、expm1l?

  • 如果x → 0,这些函数比表达式e x – 1更准确。
  • 它们对于金融计算非常有用,例如计算(小)利率,以及计算双曲函数的倒数。