Sdílet prostřednictvím


log, logf, log10, log10f

Vypočítá logaritmy.

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
);

Parametry

  • x
    Hodnota, jehož logaritmus se nachází.

Vrácená hodnota

Protokolu funkce vrátí přirozený logaritmus (základ e) x v případě úspěchu.Funkce log10 Vrátí dekadický logaritmus.Pokud x je záporné, vrátí tyto funkce neurčitou, a ve výchozím nastavení.Pokud x je 0, vrátí INF (Normal).

Vstup

Výjimka SEH

Výjimka Matherr

± QNAN, IND

žádný

_DOMAIN

± 0

ZERODIVIDE

_SING

x < 0

NEPLATNÝ

_DOMAIN

protokol a log10 má implementace, která používá Streaming SIMD Extensions 2 (SSE2).Viz _set_SSE2_enable informace a omezení použití implementace SSE2.

Poznámky

C++ umožňuje přetížení, tak můžete volat přetížení z protokolu a log10.V programu c protokolu a log10 vždy trvat a vrátí hodnotu double.

Požadavky

Rutina

Požadované záhlaví

log, logf, log10,log10f

<math.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Knihovny

Všechny verze C Runtime knihovny.

Příklad

// 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 );
}

Výsledek

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

Generování logaritmy u jiných základů slouží matematický vztah: základní b protokolu == přírodní protokolu (a) / přírodní protokolu (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);
}

Výsledek

Log base 2 of 65536.000000 is 16.000000

Ekvivalent v rozhraní .NET Framework

Viz také

Referenční dokumentace

Podpora s plovoucí desetinnou čárkou

Exp expf

_matherr

Pow powf

_CIlog

_CIlog10