函式
<cmath> <ctgmath>

log

double log (double x);
     double log  (     double x);      float logf (      float x);long double logl (long double x);
     double log (     double x);      float log (      float x);long double log (long double x);
     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

標頭檔案 <tgmath.h> 提供了此函式的型別通用宏版本。
此函式在 <complex><valarray> 中被過載(請參閱 complex logvalarray log)。
此標頭檔案 (<cmath>) 中為整型提供了額外的過載:這些過載在計算前有效地將 x 轉換為 double

此函式在 <complex><valarray> 中也被過載(請參閱 complex logvalarray log)。

引數

x
要計算其對數的值。
如果引數為負,則會發生定義域錯誤

返回值

x 的自然對數。
如果 x 為負數,則會導致定義域錯誤
如果 x 為零,則可能導致極點錯誤(取決於庫的實現)。

如果發生定義域錯誤,全域性變數 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

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* 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;
}

輸出

log(5.500000) = 1.704748


另見