01/08/2000
La librería math.h en C es un componente fundamental para realizar diversas operaciones matemáticas dentro de tus programas. Esta librería proporciona un conjunto de funciones y macros que facilitan el trabajo con números, trigonometría, exponenciales y más, ahorrándote la necesidad de implementar estas funcionalidades desde cero.

Inclusión de la librería math.h
Para utilizar las funciones y macros de math.h, debes incluirla en tu código fuente utilizando la directiva de preprocesador #include <math.h>. Esta línea debe colocarse al principio de tu archivo .c antes de cualquier otra declaración.
Funciones matemáticas en math.h
La librería math.h ofrece una amplia gama de funciones matemáticas. Estas funciones operan principalmente con valores de tipo double, tanto para sus argumentos como para sus valores de retorno. A continuación, se detallan algunas de las más utilizadas:
Funciones trigonométricas
sin(x): Calcula el seno del ángulox(en radianes).cos(x): Calcula el coseno del ángulox(en radianes).tan(x): Calcula la tangente del ángulox(en radianes).asin(x): Calcula el arco seno (inverso del seno) dex(en radianes).acos(x): Calcula el arco coseno (inverso del coseno) dex(en radianes).atan(x): Calcula el arco tangente (inverso de la tangente) dex(en radianes).sinh(x): Calcula el seno hiperbólico dex.cosh(x): Calcula el coseno hiperbólico dex.tanh(x): Calcula la tangente hiperbólica dex.
Funciones exponenciales y logarítmicas
exp(x): Calcula e elevado a la potenciax(donde e es la constante de Euler).log(x): Calcula el logaritmo natural (base e ) dex.log10(x): Calcula el logaritmo en base 10 dex.pow(x, y): Calculaxelevado a la potenciay.sqrt(x): Calcula la raíz cuadrada dex.cbrt(x): Calcula la raíz cúbica dex.
Funciones de redondeo
ceil(x): Devuelve el entero mayor o igual ax.floor(x): Devuelve el entero menor o igual ax.round(x): Redondeaxal entero más cercano.
Funciones de valor absoluto y módulo
fabs(x): Devuelve el valor absoluto dex.fmod(x, y): Devuelve el resto de la división dexentrey.
Otras funciones
modf(x, &y): Separa la parte fraccionaria e integral dex. La parte fraccionaria se devuelve como resultado, y la parte integral se almacena en la variable apuntada pory.
Macros en math.h
Además de las funciones, math.h define varias macros que proporcionan constantes y funciones-macro útiles. Algunas de las más comunes son:
HUGE_VAL: Representa un valor infinito positivo.NAN: Representa un valor no numérico (Not a Number).INFINITY: Representa infinito.isgreater(x, y): Macro que retorna 1 six > y, 0 en caso contrario.isless(x, y): Macro que retorna 1 six < y, 0 en caso contrario.isgreaterequal(x, y): Macro que retorna 1 six ≥ y, 0 en caso contrario.islessequal(x, y): Macro que retorna 1 six ≤ y, 0 en caso contrario.islessgreater(x, y): Macro que retorna 1 six < y || x > y, 0 en caso contrario.isunordered(x, y): Macro que retorna 1 sixoyson valores no numéricos (NaN), 0 en caso contrario.
Ejemplos de uso de math.h
A continuación se presentan algunos ejemplos para ilustrar el uso de algunas funciones de la librería math.h :
Ejemplo 1: Cálculo de la hipotenusa
#include <stdio.h>#include <math.h>int main() { double cateto1 = 0; double cateto2 = 0; double hipotenusa = sqrt(cateto1 cateto1 + cateto2 cateto2); printf("La hipotenusa es: %lf", hipotenusa); return 0;}Ejemplo 2: Cálculo del seno y coseno
#include <stdio.h>#include <math.h>int main() { double angulo = M_PI / 4; // 45 grados en radianes double seno = sin(angulo); double coseno = cos(angulo); printf("Seno de 45 grados: %lf", seno); printf("Coseno de 45 grados: %lf", coseno); return 0;}Ejemplo 3: Uso de macros
#include <stdio.h>#include <math.h>int main() { double num1 = 5; double num2 = 2; int comparacion = isgreater(num1, num2); //Compara si num1 es mayor que num2 printf("¿num1 > num2? (%d)", comparacion); // Imprime 1 si es verdadero, 0 si es falso. return 0;}Tabla comparativa de funciones
| Función | Descripción |
|---|---|
ceil(x) | Redondea hacia arriba al entero más próximo. |
floor(x) | Redondea hacia abajo al entero más próximo. |
round(x) | Redondea al entero más próximo. |
fabs(x) | Valor absoluto de x. |
sqrt(x) | Raíz cuadrada de x. |
pow(x, y) | x elevado a la potencia y. |
exp(x) | e elevado a la potencia x. |
log(x) | Logaritmo natural (base e) de x. |
log10(x) | Logaritmo en base 10 de x. |
sin(x) | Seno de x (x en radianes). |
cos(x) | Coseno de x (x en radianes). |
tan(x) | Tangente de x (x en radianes). |
Consultas habituales sobre math.h
¿Qué pasa si ingreso un valor inválido a una función de math.h? Algunas funciones pueden devolver resultados inesperados o valores especiales como NAN(Not a Number) o INFINITYsi se les proporciona un argumento fuera de su dominio de definición (por ejemplo, raíz cuadrada de un número negativo).
¿Existen alternativas a math.h? Si bien math.h es la librería estándar en C, existen otras bibliotecas matemáticas en lenguajes de programación como C++ (con funcionalidades más amplias) o en otras librerías especializadas dependiendo de las necesidades específicas del proyecto.

¿Por qué es importante usar math.h en lugar de implementar las funciones manualmente? Usar math.h es más eficiente y proporciona funciones optimizadas para rendimiento. Implementar las funciones manualmente puede ser una tarea compleja y propensa a errores, además de consumir más tiempo.
La librería math.h es una herramienta esencial en la programación en C que facilita la realización de una gran cantidad de cálculos matemáticos, ofreciendo funciones y macros optimizadas y probadas. Su uso correcto simplifica significativamente el desarrollo de programas que requieren operaciones matemáticas.
Si quieres conocer otros artículos parecidos a Para qué sirve la librería math.h en c puedes visitar la categoría Libros y Librerías.
