Gráffica Academy
Creado para la ComunidadAprende a programar
Escribir al equipo

Contacta con el equipo de Gráffica Estudio Academy.

IG @ X in
Sintaxis

Números y Math

A diferencia de otros lenguajes, JavaScript no distingue entre enteros y decimales — todo es simplemente "Number". Eso simplifica las cosas, pero también esconde un par de sorpresas que conviene conocer desde el principio, antes de que te las encuentres tú solo en mitad de un cálculo de precios.

Un único tipo numérico

En JavaScript, 5 y 5.5 son del mismo tipo: Number. No hay un tipo aparte para enteros como en otros lenguajes. Esto es cómodo casi siempre, pero trae una consecuencia que sorprende a mucha gente:

decimales.js
1
Pulsa "Ejecutar" para ver el resultado.
⚠️ 0.1 + 0.2 no da exactamente 0.3

No es un bug de JavaScript: es cómo cualquier ordenador representa números decimales en binario, y le pasa a prácticamente todos los lenguajes de programación. Para dinero o precisión exacta, redondea el resultado con .toFixed(2) antes de mostrarlo al usuario.


NaN e Infinity

NaN

"Not a Number" — el resultado de una operación numérica que no tiene sentido, como 'hola' * 2. Dato curioso: NaN === NaN da false. Para comprobarlo, usa Number.isNaN(valor).

Infinity

El resultado de dividir por 0, o de un número que se sale de rango. -Infinity también existe.


Convertir texto a número

Un dato que llega de un formulario o de una API casi siempre es texto, aunque "parezca" un número. Tienes tres formas de convertirlo:

Number('42')

Conversión directa. Number('42px') da NaN — no acepta texto extra.

parseInt('42px')

Lee el número desde el principio y se detiene al primer carácter no numérico: da 42.

parseFloat('3.14€')

Igual que parseInt pero admite decimales: da 3.14.

conversion.js
1
Pulsa "Ejecutar" para ver el resultado.

El objeto Math

Math.round(x)

Redondea al entero más cercano.

Math.floor(x) / Math.ceil(x)

Redondea hacia abajo / hacia arriba, siempre.

Math.max(...) / Math.min(...)

El mayor o menor de una lista de números.

Math.random()

Un decimal aleatorio entre 0 (incluido) y 1 (excluido).

Math.sqrt(x) / Math.pow(x,y)

Raíz cuadrada, y potencia (aunque ** ya lo hace más corto).

Combinando Math.random() con Math.floor(), tienes la fórmula clásica para un número entero aleatorio dentro de un rango:

math.js
1
Pulsa "Ejecutar" para ver el resultado.
💡 Consejo

No te preocupes si el ejemplo de arriba usa function y todavía no lo has visto formalmente — lo cubrimos en detalle en el próximo módulo. Por ahora, quédate con que Math.floor(Math.random() * n) es la fórmula que vas a reutilizar constantemente para números aleatorios.

Comprueba lo que has aprendido

3 preguntas · sin nota, solo para afianzar lo de hoy

1. ¿Por qué 0.1 + 0.2 no da exactamente 0.3 en JavaScript?

2. ¿Qué devuelve parseInt('42px')?

3. ¿Qué rango de valores devuelve Math.random()?

Síguenos IG @ X in