C++官网参考链接:https://cplusplus.com/reference/cmath/log10/
函数
<cmath> <ctgmath>
log10
C90
double log10 (double x);
C99
double log10 (double x);
float log10f (float x);
long double log10l (long double x);
C++98
double log10 (double x);
float log10 (float x);
long double log10 (long double x);
C++11
double log10 (double x);
float log10 (float x);
long double log10 (long double x);
double log10 (T x); // additional overloads for integral types
计算普通对数
返回x的普通(以10为底)对数。
C99
头文件<tgmath.h>提供了该函数的泛型类型的宏版本。
C++98
该函数在<complex>和<valarray>中被重载(参见complex log10和valarray log10)
C++11
在此头文件(<cmath>)中为整型(integral types)提供了额外的重载:这些重载在计算之前有效地将x转换为double类型。
此函数在<complex>和<valarray>中也被重载(参见complex log10和valarray log10)。
形参
计算其对数的值。
如果实参为负,则发生定义域错误。
返回值
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。
用例
/* log10 example */
#include <stdio.h> /* printf */
#include <math.h> /* log10 */
int main ()
{
double param, result;
param = 1000.0;
result = log10 (param);
printf ("log10(%f) = %f\n", param, result );
return 0;
}
输出: