C++ Reference: Standard C++ Library reference: C Library: cmath: log

发布于:2022-12-05 ⋅ 阅读:(702) ⋅ 点赞:(0)

C++官网参考链接:https://cplusplus.com/reference/cmath/log/

函数 
<cmath> <ctgmath>
log
C90
double log (double x);
C99
double log  (double x); 
float logf (float x); 
long double logl (long double x);
C++98
double log (double x);      
float log (float x);
long double log (long double x);
C++11
double log (double x);      
float log (float x);
long double log (long double x);     
double log (T x);           // additional overloads for integral types

计算自然对数
返回x的自然对数。
自然对数是以e为底的对数:自然指数函数exp的反函数。普通对数(以10为底)参见log10
C99
头文件<tgmath.h>提供了该函数的泛型类型的宏版本。
C++98
该函数在<complex><valarray>中被重载(参见complex logvalarray log) 
C++11
在此头文件(<cmath>)中为整型(integral types)提供了额外的重载:这些重载在计算之前有效地将x转换为double类型。
此函数在<complex><valarray>中也被重载(参见complex logvalarray log)。

形参
计算其对数的值。
如果实参为负,则发生定义域错误。

返回值
x的自然对数。
如果x是负数,则会导致定义域错误。
如果x为0,它可能会导致极点错误(取决于库实现)。
C90(C++98)
如果发生定义域错误,将全局变量errno设置为EDOM
如果发生极点错误,则全局变量errno设置为ERANGE
C99(C++11)
如果发生定义域错误: 
math_errhandling具有MATH_ERRNO集合:全局变量errno设置为EDOM
math_errhandling具有MATH_ERREXCEPT集合:将引发FE_INVALID
如果发生极点错误: 
math_errhandling具有MATH_ERRNO集合:全局变量errno设置为ERANGE
math_errhandling具有MATH_ERREXCEPT集合:引发FE_DIVBYZERO。 

用例
/* log example */
#include <stdio.h>      /* printf */
#include <math.h>       /* log */

int main ()
{
  double param, result;
  param = 5.5;
  result = log (param);
  printf ("log(%f) = %f\n", param, result );
  return 0;
}
输出: