Biblioteca estándar de C -<math.h>

Introducción

math.hEl archivo de cabecera define varias funciones matemáticas y una macro. Todas las funciones disponibles en esta biblioteca aceptan un parámetro de tipodoubley devuelven un resultado de tipodouble

<math.h>Es un archivo de cabecera de la biblioteca estándar de C, que contiene una gran cantidad de funciones y macros para operaciones matemáticas. Estas funciones y macros proporcionan operaciones aritméticas básicas, funciones trigonométricas, funciones exponenciales, funciones logarítmicas, funciones de potencia, funciones de redondeo, etc.

Macros de la biblioteca

En<math.h>En el archivo de cabecera, hay algunas macros que se utilizan para representar los estados de error de las funciones matemáticas:

macroDescripción
HUGE_VALValor devuelto cuando el resultado de la función se desborda (infinito positivo). Esta macro representa un número de punto flotante de doble precisión muy grande, que se utiliza normalmente como valor de retorno de ciertas funciones matemáticas cuando el resultado supera el rango representable. Cuando el resultado de una función es demasiado grande para representarse con un número de punto flotante normal (es decir, se produce un desbordamiento por exceso), se establece errno en ERANGE (error de rango) y se devuelve HUGE_VAL o su valor negativo (para infinito negativo).
HUGE_VALFValor devuelto cuando el resultado de la función se desborda (infinito positivo, tipo flotante)
HUGE_VALLValor devuelto cuando el resultado de la función se desborda (infinito positivo, tipo long double)
INFINITYInfinito positivo
NANValor no numérico (Not-A-Number)
FP_INFINITERepresenta infinito
FP_NANRepresenta un valor no numérico
FP_NORMALRepresenta un número de punto flotante normal
FP_SUBNORMALRepresenta un número subnormal
FP_ZERORepresenta cero

Funciones de la biblioteca

A continuación se enumeran las funciones definidas en el archivo de cabecera math.h:

N.ºFunción y descripción
1double acos(double x)
Devuelve el arco coseno de x expresado en radianes.
2double asin(double x)
Devuelve el arco seno de x expresado en radianes.
3double atan(double x)
Devuelve el arco tangente de x expresado en radianes.
4double atan2(double y, double x)
Devuelve el arco tangente de y/x expresado en radianes. Los signos de los valores de y y de x determinan el cuadrante correcto.
5double cos(double x)
Devuelve el coseno del ángulo x en radianes.
6double cosh(double x)
Devuelve el coseno hiperbólico de x.
7double sin(double x)
Devuelve el seno del ángulo x en radianes.
8double sinh(double x)
Devuelve el seno hiperbólico de x.
9double tanh(double x)
Devuelve la tangente hiperbólica de x.
10double exp(double x)
Devuelve el valor de e elevado a la potencia x.
11double frexp(double x, int *exponent)
Descompone el número de punto flotante x en mantisa y exponente. El valor de retorno es la mantisa y almacena el exponente en exponent. El valor resultante es x = mantisa * 2 ^ exponent.
12double ldexp(double x, int exponent)
Devuelve x multiplicado por 2 elevado a la potencia exponent.
13double log(double x)
Devuelve el logaritmo natural de x (logaritmo en base e).
14double log10(double x)
Devuelve el logaritmo común de x (logaritmo en base 10).
15double modf(double x, double *integer)
El valor de retorno es la parte fraccionaria (la parte después del punto decimal) y establece integer como la parte entera.
16double pow(double x, double y)
Devuelve x elevado a la potencia y.
17double sqrt(double x)
Devuelve la raíz cuadrada de x.
18double ceil(double x)
Devuelve el valor entero más pequeño mayor o igual que x.
19double fabs(double x)
Devuelve el valor absoluto de x.
20double floor(double x)
Devuelve el valor entero más grande menor o igual que x.
21double fmod(double x, double y)
Devuelve el resto de x dividido entre y.

Constantes matemáticas comunes

A continuación se muestran<math.h>algunas de las constantes matemáticas comunes definidas en:

ConstanteValorDescripción
M_PI3.14159265358979323846Pi π
M_E2.71828182845904523536La base del logaritmo natural e
M_LOG2E1.44269504088896340736log2(e)
M_LOG10E0.43429448190325182765log10(e)
M_LN20.69314718055994530942ln(2)
M_LN102.30258509299404568402ln(10)
M_PI_21.57079632679489661923π/2
M_PI_40.78539816339744830962π/4
M_1_PI0.318309886183790671541/π
M_2_PI0.636619772367581343082/π
M_2_SQRTPI1.128379167095512573902/√π
M_SQRT21.41421356237309504880√2
M_SQRT1_20.707106781186547524401/√2

A continuación se muestra un ejemplo del uso de<math.h>las funciones y constantes de:

Ejemplo

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

int main() {
    double x = 2.0;
    double y = 3.0;

    // Operaciones básicas
    printf("sqrt(%.1f) = %.2f\n", x, sqrt(x));
    printf("pow(%.1f, %.1f) = %.2f\n", x, y, pow(x, y));
    printf("exp(%.1f) = %.2f\n", x, exp(x));
    printf("log(%.1f) = %.2f\n", x, log(x));
    printf("log10(%.1f) = %.2f\n", x, log10(x));

    // Funciones trigonométricas
    double angle = M_PI / 4; // 45 degrees
    printf("sin(%.2f) = %.2f\n", angle, sin(angle));
    printf("cos(%.2f) = %.2f\n", angle, cos(angle));
    printf("tan(%.2f) = %.2f\n", angle, tan(angle));

    // Funciones de redondeo
    double z = 5.8;
    printf("ceil(%.1f) = %.1f\n", z, ceil(z));
    printf("floor(%.1f) = %.1f\n", z, floor(z));
    printf("fabs(%.1f) = %.1f\n", z, fabs(z));

    return 0;
}

Al ejecutar el programa anterior se obtendrá una salida similar a la siguiente:

sqrt(2.0) = 1.41
pow(2.0, 3.0) = 8.00
exp(2.0) = 7.39
log(2.0) = 0.69
log10(2.0) = 0.30
sin(0.79) = 0.71
cos(0.79) = 0.71
tan(0.79) = 1.00
ceil(5.8) = 6.0
floor(5.8) = 5.0
fabs(5.8) = 5.8

<math.h>Proporciona una serie de funciones y constantes matemáticas que ayudan a los programadores a realizar diversos cálculos matemáticos en el lenguaje C. Mediante el uso de estas funciones y constantes, se pueden implementar fácilmente operaciones matemáticas complejas, mejorando así la eficiencia y la legibilidad del programa.

Otras extensiones