edubun
Español

Números y matemáticas

En JavaScript, 0.1 + 0.2 da 0.30000000000000004, y 17 % 5 da 2. Las dos cosas tienen sentido cuando sabes cómo se guardan los números y qué significa %.

Los operadores aritméticos

Casi todo lo que hacen las computadoras se reduce a aritmética, y JavaScript la escribe de forma muy parecida a como lo harías en papel. Los símbolos que hacen el trabajo se llaman operadores. Cinco ya los conoces, y dos son nuevos:

OperadorSignificadoEjemploResultado
+sumar7 + 29
-restar7 - 25
*multiplicar7 * 214
/dividir7 / 23.5
%residuo7 % 21
**potencia7 ** 249

La multiplicación usa un asterisco, porque la letra x se confundiría con una variable llamada x. La división siempre da el resultado exacto, con decimales: 7 / 2 es 3.5, no 3. El operador de residuo % divide y se queda solo con lo que sobra. 17 % 5 es 2, porque 5 cabe en 17 tres veces (15) y sobran 2. Parece una curiosidad, pero es uno de los operadores más usados en programación. Un número es par exactamente cuando n % 2 es 0, y minutes % 60 da los minutos que quedan después de quitar las horas completas.

Orden de las operaciones

JavaScript sigue el mismo orden que las matemáticas de la escuela. Primero van las potencias, luego la multiplicación, la división y el residuo, y luego la suma y la resta. Los operadores del mismo rango se resuelven de izquierda a derecha, salvo ** que va de derecha a izquierda. Los paréntesis mandan sobre todo, así que, ante la duda, ponlos; no cuestan nada y dejan clara la intención a quien lea después.

console.log(2 + 3 * 4);      // muestra 14
console.log((2 + 3) * 4);    // muestra 20
console.log(20 - 6 / 2);     // muestra 17
console.log(2 ** 3 * 5);     // muestra 40

Atajos para actualizar una variable

Actualizar una variable con su propio valor es tan común que tiene formas cortas. x += 5 significa x = x + 5, y existen las formas equivalentes -=, *= y /=. Sumar o restar exactamente uno tiene una forma todavía más corta: x++ suma 1 y x-- resta 1. Verás ++ todo el tiempo en los bucles.

let coins = 10;
coins += 5;      // ahora 15
coins *= 2;      // ahora 30
coins--;         // ahora 29
console.log(coins);   // muestra 29

Las herramientas de Math

JavaScript trae un objeto integrado llamado Math que contiene herramientas numéricas listas para usar. Math.round(2.5) redondea al entero más cercano (3), Math.floor(2.9) siempre redondea hacia abajo (2) y Math.ceil(2.1) siempre redondea hacia arriba (3). Math.max(4, 9, 2) da el mayor de sus valores y Math.min, el menor. Math.sqrt(81) es la raíz cuadrada, 9, y Math.PI es el número π, aproximadamente 3.14159. Math.floor y % forman una buena pareja: para 135 minutos, Math.floor(135 / 60) son 2 horas y 135 % 60 son 15 minutos.

Por qué 0.1 + 0.2 no es exactamente 0.3

JavaScript guarda cada número en binario usando una cantidad fija de memoria, según el formato de doble precisión IEEE 754 que especifica el estándar ECMAScript. Algunos decimales comunes, como 0.1, no se pueden escribir con exactitud en binario, igual que 1/3 no se puede escribir con exactitud en decimal. Los pequeñísimos errores de redondeo suelen quedar ocultos, pero a veces se ven: 0.1 + 0.2 imprime 0.30000000000000004. No es un error de tu código. Cuando muestres dinero o medidas a la gente, redondea el resultado, por ejemplo con (0.1 + 0.2).toFixed(2), que da la cadena "0.30". Los números enteros hasta unos nueve mil billones se guardan con exactitud, así que contar nunca se ve afectado.

Ejemplos resueltos

Ejemplo 1. El promedio de 80, 90 y 85 es (80 + 90 + 85) / 3. Sin paréntesis, 80 + 90 + 85 / 3 divide solo el 85 y da aproximadamente 198.3. Ejemplo 2. ¿Es 2024 múltiplo de 4? 2024 % 4 es 0, así que sí. Ejemplo 3. Repartir 50 dulces entre 6 niños: Math.floor(50 / 6) son 8 para cada uno y 50 % 6 son 2 que sobran.

operadorUn símbolo que trabaja sobre valores: + - * / % **
%Residuo de la división: 17 % 5 es 2
**Potencia: 2 ** 3 es 8
+=x += 5 significa x = x + 5
++Sumar exactamente 1 a una variable
Math.floorRedondear hacia abajo a un número entero
Math.roundRedondear al entero más cercano
toFixed(2)Dar formato a un número con 2 decimales, como cadena
  1. ¿Qué imprime esto?
    console.log(2 + 3 * 4);
  2. ¿Qué imprime esto?
    console.log((2 + 3) * 4);
  3. ¿Qué imprime esto?
    console.log(17 % 5);
  4. ¿Qué imprime esto?
    console.log(9 / 2);
  5. ¿Qué imprime esto?
    console.log(2 ** 5);
  6. ¿Qué imprime esto?
    let x = 10;
    x += 4;
    x *= 2;
    console.log(x);
  7. ¿Qué imprime esto?
    let n = 5;
    n++;
    n++;
    n--;
    console.log(n);
  8. ¿Qué imprime esto?
    console.log(Math.floor(7.9), Math.ceil(7.1));
    • 8 8
    • 7 8
    • 7 7
  9. ¿Qué imprime esto?
    console.log(Math.max(3, 11, 6) - Math.min(3, 11, 6));
  10. ¿Qué imprime esto?
    console.log(10 - 4 - 3);
  11. ¿Qué expresión es verdadera para todo número par n?
    • n % 2 === 0
    • n / 2 === 0
    • n % 2 === 1
  12. ¿Qué imprime esto?
    console.log((0.1 + 0.2).toFixed(2));
Ideas clave
  • + - * / funcionan como en matemáticas; / conserva los decimales.
  • % da el residuo; n % 2 === 0 significa que n es par.
  • ** es la potencia. Primero los paréntesis, luego **, luego * / %, luego + -.
  • x += 5 y x++ son formas cortas de actualizar x.
  • Math.floor, Math.round, Math.ceil, Math.max, Math.min y Math.PI.
  • Los decimales pueden llevar pequeños errores de redondeo; usa toFixed para mostrarlos.
Fuentes de este curso (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Fecha de consulta: 2026-10-17