共用方式為


log、 logf、 log10、 log10f

計算對數。

double log(
   double x 
);
float log(
   float x
);  // C++ only
long double log(
   long double x
);  // C++ only
float logf(
   float x 
);
double log10(
   double x
);
float log10(
   float x
);  // C++ only
long double log10(
   long double x
);  // C++ only
float log10f (
   float x
);

參數

  • x
    其對數是要尋找的值。

傳回值

記錄檔 函式傳回的自然對數 (基底 e) 的 x 如果執行成功。 Log10 函式傳回的基底 10 對數。 如果 x 是負值,這些函數會傳回沒有限制,根據預設值。 如果 x 為 0,就會傳回 INF (無限)。

輸入

SEH 例外狀況

Matherr 例外狀況

± QNAN 尋找

_DOMAIN

± 0

ZERODIVIDE

_SING

x < 0

不正確

_DOMAIN

記錄檔log10已使用資料流 SIMD 延伸模組 2 (SSE2) 的實作。 請參閱 _set_SSE2_enable 的資訊,並使用 SSE2 實作的限制。

備註

C + + 允許多載化,因此您可以呼叫多載的記錄檔log10。 在某 c 程式, 記錄檔log10一直使用,並傳回 double。

需求

常式

所需的標頭

log, logf, log10,log10f

<math.h>

其他的相容性資訊,請參閱相容性在簡介中。

文件庫

所有版本的 C 執行階段程式庫

範例

// crt_log.c
/* This program uses log and log10
 * to calculate the natural logarithm and
 * the base-10 logarithm of 9,000.
 */

#include <math.h>
#include <stdio.h>

int main( void )
{
   double x = 9000.0;
   double y;

   y = log( x );
   printf( "log( %.2f ) = %f\n", x, y );
   y = log10( x );
   printf( "log10( %.2f ) = %f\n", x, y );
}

Output

log( 9000.00 ) = 9.104980
log10( 9000.00 ) = 3.954243

若要產生其他的基底的對數,請使用數學的關聯性: 記錄的底數 b = = (a) 自然記錄檔 / 自然記錄 (b)。

// logbase.cpp
#include <math.h>
#include <stdio.h>

double logbase(double a, double base)
{
   return log(a) / log(base);
}

int main()
{
   double x = 65536;
   double result;

   result = logbase(x, 2);
   printf("Log base 2 of %lf is %lf\n", x, result);
}

Output

Log base 2 of 65536.000000 is 16.000000

.NET Framework 對等用法

請參閱

參考

浮點支援

expf exp

_matherr

pow powf

_CIlog

_CIlog10