0Pricing
Java Academy · Lección

Fundamentos de la clase Math

Use Math.abs, Math.pow, Math.sqrt, Math.random y otros métodos de Math de uso frecuente.

Fundamentos de la clase Math es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.

La clase Math

La clase java.lang.Math proporciona métodos de utilidad estáticos para operaciones matemáticas habituales. Siempre está disponible; no se necesita ninguna importación.

Valor absoluto y signo

Math.abs() devuelve el valor absoluto (no negativo). Math.signum() devuelve -1.0, 0.0 o 1.0 según el signo.

System.out.println(Math.abs(-42));      // 42
System.out.println(Math.abs(3.14));     // 3.14
System.out.println(Math.signum(-5.0));  // -1.0
System.out.println(Math.signum(0.0));   //  0.0
System.out.println(Math.signum(7.0));   //  1.0

Potencia, raíz cuadrada y raíz cúbica

Use Math.pow(base, exp) para calcular potencias, Math.sqrt() para raíces cuadradas y Math.cbrt() para raíces cúbicas.

System.out.println(Math.pow(2, 10));  // 1024.0
System.out.println(Math.sqrt(144));   // 12.0
System.out.println(Math.cbrt(27));    // 3.0

// Hypotenuse of a right triangle (a=3, b=4)
double hyp = Math.sqrt(Math.pow(3, 2) + Math.pow(4, 2));
System.out.println(hyp); // 5.0

Mínimo, máximo y limitación

Math.min() y Math.max() devuelven el menor y el mayor de dos valores, respectivamente. Puede combinarlos para implementar una limitación que mantenga un valor dentro de un rango.

int a = 10, b = 20;
System.out.println(Math.min(a, b)); // 10
System.out.println(Math.max(a, b)); // 20

// Clamp value between 0 and 100
int clamp(int value, int min, int max) {
    return Math.max(min, Math.min(value, max));
}
System.out.println(clamp(150, 0, 100)); // 100
System.out.println(clamp(-5,  0, 100)); // 0
System.out.println(clamp(75,  0, 100)); // 75

Suelo, techo y redondeo

Math.floor() redondea hacia abajo, Math.ceil() redondea hacia arriba y Math.round() redondea al entero más cercano (mitades hacia arriba).

double price = 9.3;
System.out.println(Math.floor(price));  // 9.0
System.out.println(Math.ceil(price));   // 10.0
System.out.println(Math.round(price));  // 9

double shipping = 3.5;
System.out.println(Math.round(shipping)); // 4 (half-up)

// Round to 2 decimal places
double tax = 7.5678;
double rounded = Math.round(tax * 100.0) / 100.0;
System.out.println(rounded); // 7.57

Logaritmos y exponenciales

Math.log() calcula el logaritmo natural (de base e), Math.log10() calcula el logaritmo en base 10 y Math.exp() calcula e^x.

System.out.println(Math.log(Math.E));   // 1.0
System.out.println(Math.log10(1000));   // 3.0
System.out.println(Math.exp(1));        // 2.718281828...

// Change of base: log2(8)
double log2 = Math.log(8) / Math.log(2);
System.out.println(log2); // 3.0

// Compound interest: P * e^(r*t)
double principal = 1000, rate = 0.05, years = 10;
double amount = principal * Math.exp(rate * years);
System.out.printf("Amount: %.2f%n", amount); // 1648.72

Métodos trigonométricos

Math proporciona funciones trigonométricas que aceptan ángulos en radianes. Use Math.toRadians() para convertir grados a radianes.

double angle = Math.toRadians(45);
System.out.printf("sin(45): %.4f%n", Math.sin(angle)); // 0.7071
System.out.printf("cos(45): %.4f%n", Math.cos(angle)); // 0.7071
System.out.printf("tan(45): %.4f%n", Math.tan(angle)); // 1.0000

// Distance between two GPS coordinates (simplified)
double lat1 = Math.toRadians(40.7128);
double lat2 = Math.toRadians(34.0522);
double deltaLat = lat2 - lat1;
System.out.printf("Delta lat (rad): %.4f%n", deltaLat);

Números aleatorios

Math.random() devuelve un double en [0.0, 1.0). Multiplique y convierta el resultado para obtener enteros dentro de un rango. Para obtener una aleatoriedad de mayor calidad, prefiera java.util.Random.

// Random double [0.0, 1.0)
double rand = Math.random();

// Random int [min, max] inclusive
int min = 1, max = 6;
int dice = (int) (Math.random() * (max - min + 1)) + min;
System.out.println("Dice roll: " + dice); // 1–6

// Prefer java.util.Random for more features
import java.util.Random;
Random rng = new Random();
int secureRoll = rng.nextInt(6) + 1; // cleaner API
System.out.println("Secure roll: " + secureRoll);

Constantes: PI y E

Math.PI y Math.E son constantes double que representan π y el número e de Euler. Utilícelas en cálculos geométricos y financieros.

System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.E);  // 2.718281828459045

// Circle area and circumference
double radius = 7.0;
double area = Math.PI * Math.pow(radius, 2);
double circumference = 2 * Math.PI * radius;

System.out.printf("Area: %.2f%n", area);           // 153.94
System.out.printf("Circumference: %.2f%n", circumference); // 43.98

Math.floorDiv y Math.floorMod

Math.floorDiv() y Math.floorMod() gestionan los números negativos de forma coherente, a diferencia de los operadores / y %, que pueden producir resultados inesperados con valores negativos.

// Regular % can be negative with negative dividend
System.out.println(-7 % 3);           // -1 (may surprise you)
System.out.println(Math.floorMod(-7, 3)); // 2  (always non-negative)

// Floor division rounds toward negative infinity
System.out.println(-7 / 3);              // -2 (truncates toward zero)
System.out.println(Math.floorDiv(-7, 3)); // -3 (floors down)

// Use floorMod for cyclic calculations like days of week
int day = Math.floorMod(-1, 7); // Sunday (6), not -1
System.out.println(day); // 6

Práctica: distancia y física

Aplicación de los métodos de Math a un problema de física: calcular el alcance de un proyectil mediante trigonometría y raíces cuadradas.

// Projectile range: R = v^2 * sin(2*angle) / g
double velocity = 50.0;   // m/s
double angleDeg = 45.0;   // degrees
double g = 9.81;          // m/s^2

double angleRad = Math.toRadians(angleDeg);
double range = Math.pow(velocity, 2) * Math.sin(2 * angleRad) / g;

System.out.printf("Projectile range: %.1f m%n", range); // 254.8 m

Comprobación rápida

¿Cuál es la salida de Math.floorMod(-7, 3)?

Resumen: la clase Math

Ideas clave:

  • Math.abs, Math.min y Math.max para comparaciones básicas
  • Math.pow, Math.sqrt y Math.cbrt para potencias y raíces
  • Math.floor, Math.ceil y Math.round para redondear
  • Math.log, Math.log10 y Math.exp para logaritmos y exponenciales
  • Math.sin, Math.cos y Math.tan usan radianes; convierta con Math.toRadians
  • Math.floorMod gestiona correctamente los números negativos en operaciones cíclicas
  • Math.PI y Math.E son constantes integradas

Preguntas frecuentes

¿La lección «Fundamentos de la clase Math» es gratis?

Sí — el texto completo de «Fundamentos de la clase Math» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Fundamentos de la clase Math»?

Use Math.abs, Math.pow, Math.sqrt, Math.random y otros métodos de Math de uso frecuente. Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Fundamentos de la clase Math»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos de la clase Math
  2. Aritmética de enteros y desbordamiento
  3. BigDecimal para cálculos financieros
  4. NumberFormat y printf
← Volver a Java Academy