csharp-clase-math

Qué es y cómo usar la clase Math en C#

  • 10 min

Hasta ahora hemos visto cómo sumar, restar o multiplicar usando los operadores básicos (+, -, *, /). Pero, ¿qué pasa si necesitamos calcular una raíz cuadrada, un seno o redondear un número con precisión específica?

Aquí es donde entra en juego la clase System.Math.

La clase Math es una clase estática que proporciona constantes y métodos estáticos para operaciones trigonométricas, logarítmicas y otras funciones matemáticas comunes.

Al ser una clase estática, no necesitamos (y de hecho no podemos) crear una instancia de ella con new. Usamos sus métodos llamando directamente a la clase: Math.Metodo().

Constantes en la clase Math

La clase Math incluye constantes muy útiles:

ConstanteValor en C# (Math)Descripción
Math.PI3.141592653589793Representa el valor de π (pi).
Math.E2.718281828459045Base del logaritmo natural (número de Euler).
Math.Tau6.283185307179586Representa el valor de τ (tau), que es 2π.
Math.Sqrt21.4142135623730951Representa la raíz cuadrada de 2.
Math.Sqrt31.7320508075688772Representa la raíz cuadrada de 3.
Math.Log2E1.4426950408889634Logaritmo base 2 de E.
Math.Log10E0.4342944819032518Logaritmo base 10 de E.
Math.EpsilonDouble.EpsilonEl número positivo más pequeño distinto de cero.
Console.WriteLine($"El valor de PI es: {Math.PI}");
Console.WriteLine($"El valor de E es: {Math.E}");
Copied!

Métodos básicos de la clase Math

MétodoDescripción
Math.Abs(valor)Devuelve el valor absoluto del número.
Math.Max(a, b)Devuelve el mayor de dos valores.
Math.Min(a, b)Devuelve el menor de dos valores.
Math.Sign(valor)Devuelve un entero que indica el signo del número: -1 (negativo), 0 (cero) o 1 (positivo).

Ejemplos:

double valor = -7.5;
double absoluto = Math.Abs(valor);   // Resultado: 7.5

double a = 5, b = 10;
double maximo = Math.Max(a, b);      // Resultado: 10
double minimo = Math.Min(a, b);      // Resultado: 5

int signo1 = Math.Sign(valor);       // Resultado: -1
int signo2 = Math.Sign(0);           // Resultado: 0
int signo3 = Math.Sign(8.2);         // Resultado: 1
Copied!

Redondeo de números

El redondeo es crucial en ingeniería para simplificar los resultados y mejorar la precisión de la presentación de datos.

MétodoDescripción
Math.Round(valor)Redondea al entero más cercano.
Math.Ceiling(valor)Redondea hacia arriba (techo).
Math.Floor(valor)Redondea hacia abajo (piso).
Math.Truncate(valor)Elimina la parte decimal sin redondear.

Ejemplos:

double valor1 = 3.56;
double redondeado = Math.Round(valor1);   // Resultado: 4
double techo = Math.Ceiling(valor1);      // Resultado: 4
double piso = Math.Floor(valor1);         // Resultado: 3
double truncado = Math.Truncate(valor1);  // Resultado: 3
Copied!

Redondeo con precisión

El método Math.Round puede redondear un número a un número específico de decimales.

double numero = 3.14159;
Console.WriteLine($"Redondeo a 2 decimales: {Math.Round(numero, 2)}"); // 3.14
Copied!

Funciones trigonométricas

La clase Math incluye métodos para realizar cálculos trigonométricos, como seno, coseno y tangente. Estos métodos utilizan radianes como unidad de medida.

Seno, coseno y tangente

MétodoDescripción
Math.SinDevuelve el seno de un ángulo especificado en radianes.
Math.CosDevuelve el coseno de un ángulo especificado en radianes.
Math.TanDevuelve la tangente de un ángulo especificado en radianes.

Ejemplos:

double angulo = Math.PI / 4; // 45 grados en radianes
Console.WriteLine($"Seno de {angulo} radianes: {Math.Sin(angulo)}");
Console.WriteLine($"Coseno de {angulo} radianes: {Math.Cos(angulo)}");
Console.WriteLine($"Tangente de {angulo} radianes: {Math.Tan(angulo)}");
Copied!

Funciones inversas

MétodoDescripción
Math.AsinDevuelve el arco seno de un número.
Math.AcosDevuelve el arco coseno de un número.
Math.AtanDevuelve el arco tangente de un número.

Ejemplos:

double valor = 0.5;
Console.WriteLine($"Arco seno de {valor}: {Math.Asin(valor)}");
Console.WriteLine($"Arco coseno de {valor}: {Math.Acos(valor)}");
Console.WriteLine($"Arco tangente de {valor}: {Math.Atan(valor)}");
Copied!

Las funciones trigonométricas de Math aceptan y devuelven ángulos en Radianes, NO en Grados.

Para convertir grados a radianes y viceversa:

ConceptoDescripción
Math.PIRepresenta el valor de π (aproximadamente 3.14159).
Convertir grados a radianes(grados * Math.PI) / 180
Convertir radianes a grados(radianes * 180) / Math.PI

Ejemplos:

double anguloGrados = 30.0;
double anguloRadianes = (anguloGrados * Math.PI) / 180; // Conversión a radianes

double seno = Math.Sin(anguloRadianes);
double coseno = Math.Cos(anguloRadianes);
double tangente = Math.Tan(anguloRadianes);
Copied!

Funciones exponenciales y logarítmicas

MétodoDescripción
Math.Log(valor)Calcula el logaritmo natural (base e) de un valor.
Math.Log10(valor)Calcula el logaritmo en base 10 de un valor.
Math.Exp(exponente)Calcula el valor de e elevado al exponente dado.

Ejemplos:

double valorLog = 10.0;
double logNatural = Math.Log(valorLog);    // Logaritmo natural de 10
double logBase10 = Math.Log10(valorLog);   // Logaritmo base 10 de 10

double exponente = 2.0;
double expResultado = Math.Exp(exponente); // e^2
Copied!

Potencias y raíces

Potencias y raíces

Los cálculos de potencia y raíz cuadrada son comunes en ingeniería, especialmente en aplicaciones que involucran crecimiento exponencial, atenuación de señales y cálculos de energía.

MétodoDescripción
Math.Pow(base, exponente)Calcula el valor de la base elevada al exponente.
Math.Sqrt(valor)Calcula la raíz cuadrada de un número.

Ejemplos:

double base = 3.0;
double exponente = 4.0;
double resultadoPotencia = Math.Pow(base, exponente); // 3^4 = 81

double valor = 16.0;
double resultadoRaiz = Math.Sqrt(valor); // √16 = 4
Copied!

Math.Pow trabaja internamente con tipos double. Si lo usáis simplemente para elevar al cuadrado un entero (ej: x * x), es mucho más eficiente multiplicar la variable por sí misma que llamar a la función Pow.

Ejemplos prácticos