log10() Function
The log10() function computes the common (base-10) logarithm of a value. It is part of the math.h library and is widely used in various mathematical computations, particularly where logarithmic conversions are needed. The function handles error conditions such as domain and pole errors, setting appropriate error indicators when necessary.
Syntax of log10()
double log10(double x);
float log10f(float x);
long double log10l(long double x);
Parameters
| Parameter | Description |
|---|---|
x | The value for which the common logarithm is calculated. If x is negative, a domain error occurs. If x is zero, a pole error may occur, depending on the library implementation. |
Note: When a domain error occurs (x is negative), the global variable errno may be set to EDOM or the floating-point exception FE_INVALID may be raised. Similarly, when a pole error occurs (x is zero), errno may be set to ERANGE or the exception FE_DIVBYZERO may be raised.
Examples for log10()
Example 1: Calculating the Logarithm of a Positive Number
This example demonstrates how to use log10() to compute the logarithm of a positive value.
Program
#include <stdio.h>
#include <math.h>
int main() {
double value = 1000.0;
double result = log10(value);
printf("The common logarithm of %.2f is %.2f\n", value, result);
return 0;
}
Explanation:
- A variable
valueis initialized with 1000.0. - The
log10()function is called to compute its common logarithm. - The result is stored and then printed using
printf().
Program Output:
The common logarithm of 1000.00 is 3.00
Example 2: Handling a Domain Error with a Negative Input
This example shows how to handle a domain error when log10() is used with a negative value.
Program
#include <stdio.h>
#include <math.h>
#include <errno.h>
int main() {
double value = -10.0;
errno = 0; // Reset errno before calling log10
double result = log10(value);
if (errno == EDOM) {
printf("Domain error: Cannot compute log10 for a negative number.\n");
} else {
printf("The common logarithm of %.2f is %.2f\n", value, result);
}
return 0;
}
Explanation:
- The variable
valueis set to -10.0, which is negative. errnois reset to zero before callinglog10().- The function call triggers a domain error, and
errnois set toEDOM. - The program checks
errnoand prints an appropriate error message.
Program Output:
Domain error: Cannot compute log10 for a negative number.
