Convertir unidades permite expresar una misma magnitud en distintos sistemas. Las escalas permiten transformar valores manteniendo una relación proporcional, algo esencial en gráficos, interfaces, mediciones y simulaciones.
Un programa puede recibir una distancia en metros y necesitar mostrarla en kilómetros, recibir una temperatura en Celsius y convertirla a Fahrenheit, o adaptar una medida de diseño a otro tamaño de pantalla.
La conversión de unidades se basa en factores de conversión. Una escala, por su parte, transforma valores de un rango a otro conservando una relación proporcional.
En programación, estas operaciones deben escribirse con claridad porque un error de unidad puede producir resultados muy incorrectos.
Una unidad indica cómo se mide una magnitud. Por ejemplo, una longitud puede expresarse en milímetros, centímetros, metros o kilómetros.
Convertir unidades no cambia la magnitud real, solo cambia la forma de expresarla.
const kilometros = 3;
const metros = kilometros * 1000;
console.log(metros);
Para convertir desde metros hacia unidades más pequeñas, multiplicamos. Para volver a metros, dividimos.
| Conversión | Operación | Ejemplo |
|---|---|---|
| Metros a centímetros | multiplicar por 100 | 2 m = 200 cm |
| Centímetros a metros | dividir por 100 | 250 cm = 2.5 m |
| Metros a milímetros | multiplicar por 1000 | 1.5 m = 1500 mm |
const metros = 2.5;
console.log(metros * 100);
console.log(metros * 1000);
console.log(250 / 100);
Cuando una conversión se repite, conviene convertirla en una función con un nombre claro.
function kilometrosAMetros(kilometros) {
return kilometros * 1000;
}
function metrosAKilometros(metros) {
return metros / 1000;
}
console.log(kilometrosAMetros(4.2));
console.log(metrosAKilometros(1500));
Los nombres de las funciones ayudan a evitar confusiones entre multiplicar y dividir.
El tiempo se convierte usando factores conocidos: 1 minuto son 60 segundos y 1 hora son 60 minutos.
const horas = 2;
const minutos = horas * 60;
const segundos = minutos * 60;
console.log(minutos);
console.log(segundos);
Estas conversiones aparecen en temporizadores, animaciones, registros de eventos y mediciones de rendimiento.
Algunas unidades combinan dos magnitudes. Por ejemplo, kilómetros por hora y metros por segundo relacionan distancia y tiempo.
const velocidadKmH = 72;
const velocidadMS = velocidadKmH / 3.6;
console.log(velocidadMS);
Este tipo de conversión aparece en simulaciones, videojuegos, física básica y aplicaciones de movimiento.
La conversión de temperatura no siempre usa solo multiplicación o división. Para convertir Celsius a Fahrenheit también se suma 32.
function celsiusAFahrenheit(celsius) {
return celsius * 9 / 5 + 32;
}
function fahrenheitACelsius(fahrenheit) {
return (fahrenheit - 32) * 5 / 9;
}
console.log(celsiusAFahrenheit(25));
console.log(fahrenheitACelsius(77));
Los paréntesis en la conversión inversa son importantes para restar antes de multiplicar.
En informática usamos unidades como bytes, kilobytes, megabytes y gigabytes. En muchos contextos se usa base decimal: 1 KB = 1000 bytes. En otros se usa base binaria: 1 KiB = 1024 bytes.
| Unidad decimal | Equivalencia | Unidad binaria | Equivalencia |
|---|---|---|---|
| KB | 1000 bytes | KiB | 1024 bytes |
| MB | 1000 KB | MiB | 1024 KiB |
| GB | 1000 MB | GiB | 1024 MiB |
const megabytes = 5;
const bytesDecimal = megabytes * 1000 * 1000;
const bytesBinario = megabytes * 1024 * 1024;
console.log(bytesDecimal);
console.log(bytesBinario);
Una escala es un factor que multiplica una medida para aumentarla o reducirla manteniendo una proporción.
const anchoOriginal = 800;
const altoOriginal = 600;
const escala = 0.75;
console.log(anchoOriginal * escala);
console.log(altoOriginal * escala);
Si usamos la misma escala en ancho y alto, mantenemos la proporción de la figura.
A veces queremos convertir un valor de un rango a otro. Por ejemplo, transformar una nota de 0 a 10 en un porcentaje de 0 a 100.
function escalar(valor, minOriginal, maxOriginal, minNuevo, maxNuevo) {
return (valor - minOriginal) /
(maxOriginal - minOriginal) *
(maxNuevo - minNuevo) +
minNuevo;
}
console.log(escalar(7.5, 0, 10, 0, 100));
console.log(escalar(50, 0, 100, -1, 1));
Esta fórmula se usa en gráficos, barras de progreso, videojuegos, visualización de datos e inteligencia artificial.
Si un valor está en una escala lógica de 0 a 1, podemos convertirlo a píxeles multiplicando por el tamaño disponible.
const posicionNormalizada = 0.35;
const anchoPantalla = 1200;
const posicionPixeles = posicionNormalizada * anchoPantalla;
console.log(posicionPixeles);
Esta técnica aparece en interfaces, animaciones, barras, gráficos y escenas interactivas.
En un mapa o plano, una distancia dibujada representa una distancia real. Por ejemplo, escala 1:100 significa que 1 unidad en el plano representa 100 unidades reales.
const distanciaPlanoCm = 8;
const escala = 100;
const distanciaRealCm = distanciaPlanoCm * escala;
const distanciaRealMetros = distanciaRealCm / 100;
console.log(distanciaRealCm);
console.log(distanciaRealMetros);
Una conversión debe validar que el factor tenga sentido. No se puede escalar correctamente con un rango original de tamaño cero.
function escalar(valor, minOriginal, maxOriginal, minNuevo, maxNuevo) {
if (maxOriginal === minOriginal) {
return "Rango original inválido";
}
return (valor - minOriginal) /
(maxOriginal - minOriginal) *
(maxNuevo - minNuevo) +
minNuevo;
}
console.log(escalar(5, 0, 10, 0, 100));
console.log(escalar(5, 10, 10, 0, 100));
const metros = 1.75;
const centimetrosCorrecto = metros * 100;
const centimetrosIncorrecto = metros / 100;
console.log(centimetrosCorrecto);
console.log(centimetrosIncorrecto);
La conversión de unidades y el manejo de escalas son tareas frecuentes en programación. Permiten conectar datos con medidas reales, adaptar interfaces, representar gráficos y transformar valores entre distintos sistemas.
En el próximo tema estudiaremos magnitudes y mediciones, para entender mejor qué tipo de valores estamos representando y cómo interpretarlos correctamente.