共用方式為


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
    要找出其對數的值。

傳回值

log 函式傳回自然對數 (基底 x e),如果成功。 log10 函式傳回以 10 為基底之對數。 如果 x 為負數,這些函式會傳回不確定,預設為。 如果 x 為 0,則會傳回 INF (無限)。

輸入

SEH 例外狀況

Matherr 例外狀況

± QNAN,IND

_DOMAIN

± 0

ZERODIVIDE

_SING

x < 0

INVALID

_DOMAIN

loglog10 會使用 Streaming SIMD Extensions 2(SSE2) 的實作。 請參閱 _set_SSE2_enable 以取得詳細資訊及使用限制 SSE2 實作。

備註

C++ 允許多載,因此您可以呼叫 loglog10 的多載。 在 C 程式,loglog10 一律接受並傳回 。

需求

常式

必要的標頭

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

若要產生其他基底對數,請使用數學關聯性 (式):記錄 == 自然對數 (a)/自然對數 (B) 的基礎 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 對等用法

請參閱

參考

浮點支援

exp、expf

_matherr

pow、powf、powl

_CIlog

_CIlog10