DMarlon Studio

Lección 3 · 3 de 20

Números y Math · JavaScript

Haga cuentas en JavaScript: operadores, resto con %, potencias, redondeo con toFixed y las funciones del objeto Math, con ejemplos prácticos.

JavaScript · Números y Math en DMarlon Studio: el código del ejemplo y su salida en la terminal

En JavaScript todos los números son del tipo number, tengan decimales o no. Las operaciones básicas son +, -, * y /. La superficie de la habitación es width * length; Math.round() la redondea al entero más próximo y `toFixed(2)` la escribe con dos decimales (como texto).

La división / siempre da el resultado exacto: 27 / 12 es 2.25. Para saber cuántas cajas de 12 huevos se llenan se usa `Math.floor()`, que redondea hacia abajo, y para los huevos que sobran, el resto %: 27 % 12 es 3.

** eleva a una potencia y Math.sqrt() calcula la raíz cuadrada. Math.max() y Math.min() devuelven el mayor y el menor de los números que reciban, y `Math.ceil()` redondea hacia arriba: con 130 personas y autobuses de 55 plazas hacen falta 3.

Los decimales se guardan en binario y algunos no son exactos: 0.1 + 0.2 da 0.30000000000000004. Para mostrar dinero o medidas, redondee con toFixed().

Number() convierte un texto en número y parseInt() lee el número entero del principio de un texto, como "15 kg". Si el texto no es un número, el resultado es `NaN` («no es un número»).

Código · main.js

// Whole numbers and decimals are all of type "number".const width = 4.5; // metresconst length = 3.2;const area = width * length;console.log("Area:", area, "m2");console.log("Rounded:", Math.round(area), "| Two decimals:", area.toFixed(2));// Division, whole part and remainderconst eggs = 27;console.log("27 / 12 =", eggs / 12);console.log("Full boxes of 12:", Math.floor(eggs / 12));console.log("Eggs left over:", eggs % 12);// Powers and rootsconsole.log("2 to the 10th:", 2 ** 10, "| Square root of 144:", Math.sqrt(144));// Highest, lowest, rounding upconsole.log("Warmest day:", Math.max(14, 19, 23, 17, 9));console.log("Coldest day:", Math.min(14, 19, 23, 17, 9));console.log("Buses for 130 people (55 seats):", Math.ceil(130 / 55));// Decimals are not always exact in binary:console.log(0.1 + 0.2, "->", (0.1 + 0.2).toFixed(2));// From text to numberconsole.log(Number("42") + 8, "| parseInt:", parseInt("15 kg"), "| Not a number:", Number("abc"));

Salida · node main.js

Area: 14.4 m2
Rounded: 14 | Two decimals: 14.40
27 / 12 = 2.25
Full boxes of 12: 2
Eggs left over: 3
2 to the 10th: 1024 | Square root of 144: 12
Warmest day: 23
Coldest day: 9
Buses for 130 people (55 seats): 3
0.30000000000000004 -> 0.30
50 | parseInt: 15 | Not a number: NaN

Para recordar

  • % es el resto de la división.
  • Math.floor redondea hacia abajo, Math.ceil hacia arriba y Math.round al más próximo.
  • toFixed(n) da un texto con n decimales.
  • Los decimales no siempre son exactos: redondee al mostrarlos.
  • Number("abc") da NaN.

Ejercicio

Calcule cuántas cajas de 6 botellas hacen falta para 50 botellas y cuántas sobran en la última caja, y el precio de 7 botellas a 1.35 euros con dos decimales.