Cómo formatear números en notación ingenieril
Usa la notación ingenieril para mostrar números con exponentes que se alinean con los prefijos de unidades del SI
Introducción
La notación ingenieril es una forma de escribir números usando potencias de 10 donde el exponente es siempre un múltiplo de 3. En lugar de mostrar 123,000,000 como 1.23×10⁸, la notación ingenieril lo muestra como 123×10⁶. Esta alineación con múltiplos de 3 coincide con los prefijos del Sistema Internacional de Unidades (SI) como kilo (10³), mega (10⁶) y giga (10⁹).
Esta notación aparece frecuentemente en contextos de ingeniería, electrónica y científicos donde las mediciones usan prefijos del SI. Un condensador con una capacidad de 4.7×10⁻⁶ faradios se convierte en 4.7 microfaradios. Una frecuencia de 2.4×10⁹ hercios se convierte en 2.4 gigahercios. La notación ingenieril hace que estas conversiones sean naturales porque el exponente corresponde directamente al prefijo del SI.
JavaScript proporciona soporte integrado para la notación ingenieril a través de la API Intl.NumberFormat. Esta API maneja la conversión automáticamente y adapta el formato a diferentes idiomas y regiones.
Qué es la notación ingenieril
La notación ingenieril expresa números como un coeficiente multiplicado por una potencia de 10, donde el exponente es siempre divisible por 3. El número 987,654,321 se convierte en 987.654×10⁶ en notación ingenieril, escrito como 987.654E6 en la salida de JavaScript.
El coeficiente aparece como un número entre 1 y 999.999, seguido de E y el exponente. La E significa exponente e indica multiplicación por 10 elevado a esa potencia. El valor 987.654E6 significa 987.654 × 10⁶, que equivale a 987,654,000.
Este formato difiere de la notación decimal estándar, que escribe todos los dígitos con separadores como 987,654,321. También difiere de la notación compacta, que usa letras como K, M y B para representar magnitudes. La notación ingenieril muestra explícitamente la potencia de 10 usando notación exponencial.
Por qué la notación ingenieril usa múltiplos de tres
La restricción a múltiplos de 3 existe porque los prefijos de unidades del SI aumentan o disminuyen en factores de 1000. Cada paso hacia arriba en la escala de prefijos multiplica por 10³, y cada paso hacia abajo divide por 10³.
Considera los prefijos del SI para potencias de 10:
- 10³ = kilo (k)
- 10⁶ = mega (M)
- 10⁹ = giga (G)
- 10¹² = tera (T)
- 10⁻³ = mili (m)
- 10⁻⁶ = micro (μ)
- 10⁻⁹ = nano (n)
- 10⁻¹² = pico (p)
Cuando un número usa notación ingenieril con un exponente de 6, sabes que corresponde al prefijo mega. Cuando el exponente es -9, sabes que corresponde al prefijo nano. Esta correspondencia directa hace que la notación ingenieril sea práctica para campos técnicos donde dominan las unidades del SI.
Sin esta restricción, necesitarías realizar cálculos mentales para convertir entre la notación y los prefijos del SI. Con la restricción, la conversión es inmediata.
Cómo difiere la notación ingenieril de la notación científica
La notación científica también expresa números usando potencias de 10, pero usa el exponente más pequeño posible. El número 987.654.321 se convierte en 9,87654321×10⁸ en notación científica, escrito como 9,87654321E8.
La notación científica siempre coloca exactamente un dígito distinto de cero antes del punto decimal. La notación ingenieril permite hasta tres dígitos antes del punto decimal para asegurar que el exponente sea divisible por 3.
const scientificFormatter = new Intl.NumberFormat("en-US", {
notation: "scientific"
});
console.log(scientificFormatter.format(987654321));
// Output: "9.877E8"
const engineeringFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(engineeringFormatter.format(987654321));
// Output: "987.654E6"
El formateador científico produce 9,877E8, colocando un dígito antes del punto decimal. El formateador ingenieril produce 987,654E6, colocando tres dígitos antes del punto decimal para lograr un exponente de 6 en lugar de 8.
Ambas notaciones representan el mismo valor, pero la notación ingenieril prioriza la alineación con los prefijos del SI sobre la minimización del exponente.
Uso de la notación ingenieril en JavaScript
La opción notation en Intl.NumberFormat controla cómo se representan los números. Establecerla en "engineering" habilita la notación ingenieril.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(formatter.format(1500));
// Output: "1.5E3"
console.log(formatter.format(1500000));
// Output: "1.5E6"
console.log(formatter.format(1500000000));
// Output: "1.5E9"
El formateador elige automáticamente el exponente apropiado según la magnitud del número. El exponente es siempre un múltiplo de 3, asegurando la alineación con los prefijos del SI.
No necesitas calcular el exponente o coeficiente correcto. La API Intl maneja estos cálculos según el valor del número.
Cómo la notación ingenieril formatea diferentes magnitudes
La notación ingenieril se aplica en todas las escalas, desde números muy pequeños hasta muy grandes. Comprender cómo las diferentes magnitudes se corresponden con los exponentes te ayuda a predecir el resultado.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(formatter.format(0.0015));
// Output: "1.5E-3"
console.log(formatter.format(0.0000015));
// Output: "1.5E-6"
console.log(formatter.format(1.5));
// Output: "1.5E0"
console.log(formatter.format(1500));
// Output: "1.5E3"
console.log(formatter.format(1500000));
// Output: "1.5E6"
console.log(formatter.format(1500000000));
// Output: "1.5E9"
console.log(formatter.format(1500000000000));
// Output: "1.5E12"
Los números pequeños menores que 1 usan exponentes negativos. El número 0,0015 se convierte en 1,5E-3, correspondiente al prefijo mili. El número 0,0000015 se convierte en 1,5E-6, correspondiente al prefijo micro.
Los números alrededor de 1 usan un exponente de 0. El número 1,5 se convierte en 1,5E0, que equivale a 1,5 × 10⁰ = 1,5 × 1 = 1,5.
Los números grandes usan exponentes positivos. El número 1500 se convierte en 1,5E3, correspondiente al prefijo kilo. El patrón continúa para mega, giga y tera.
Control de decimales en la notación ingenieril
Por defecto, el formateador incluye varios decimales en el coeficiente. Puedes controlar la precisión usando las opciones minimumFractionDigits y maximumFractionDigits.
const defaultFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(defaultFormatter.format(1234567));
// Output: "1.235E6"
const noDecimalsFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
maximumFractionDigits: 0
});
console.log(noDecimalsFormatter.format(1234567));
// Output: "1E6"
const twoDecimalsFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
maximumFractionDigits: 2
});
console.log(twoDecimalsFormatter.format(1234567));
// Output: "1.23E6"
La opción maximumFractionDigits limita cuántos dígitos aparecen después del punto decimal en el coeficiente. Establecerla en 0 elimina todos los decimales, mostrando solo la parte entera del coeficiente.
También puedes establecer un número mínimo de decimales para mantener un formato consistente en múltiples números.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
console.log(formatter.format(1000));
// Output: "1.00E3"
console.log(formatter.format(1500));
// Output: "1.50E3"
console.log(formatter.format(1234567));
// Output: "1.23E6"
Esto garantiza que todos los números muestren exactamente dos decimales, lo que ayuda a mantener la consistencia visual en tablas e informes.
Cómo funciona la notación ingenieril en diferentes configuraciones regionales
La notación ingenieril se adapta a las diferentes convenciones regionales para los separadores decimales. El formato del exponente permanece consistente, pero el formato del coeficiente cambia según la configuración regional.
const enFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(enFormatter.format(1234567));
// Output: "1.235E6"
const deFormatter = new Intl.NumberFormat("de-DE", {
notation: "engineering"
});
console.log(deFormatter.format(1234567));
// Output: "1,235E6"
const frFormatter = new Intl.NumberFormat("fr-FR", {
notation: "engineering"
});
console.log(frFormatter.format(1234567));
// Output: "1,235E6"
El inglés utiliza un punto como separador decimal en el coeficiente. El alemán y el francés utilizan una coma como separador decimal. La E y el exponente permanecen iguales en todas las configuraciones regionales.
Esta localización se aplica solo a la parte del coeficiente. La notación del exponente usando E y el valor del exponente sigue las convenciones científicas internacionales y no cambia entre configuraciones regionales.
Combinación de la notación ingenieril con otras opciones de formato
La notación ingenieril funciona con otras opciones de formato de números. Puedes controlar el redondeo, los dígitos significativos y la visualización del signo mientras usas la notación ingenieril.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
signDisplay: "always"
});
console.log(formatter.format(1500000));
// Output: "+1.5E6"
console.log(formatter.format(-1500000));
// Output: "-1.5E6"
La opción signDisplay controla si los números positivos muestran un signo más. Establecerla en "always" muestra el signo tanto para valores positivos como negativos.
También puedes controlar los dígitos significativos en lugar de los decimales.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
minimumSignificantDigits: 4,
maximumSignificantDigits: 4
});
console.log(formatter.format(1234567));
// Output: "1.235E6"
console.log(formatter.format(1567890));
// Output: "1.568E6"
Las opciones minimumSignificantDigits y maximumSignificantDigits controlan el número total de dígitos significativos en el coeficiente, en lugar de solo los decimales.
Cuándo usar la notación ingenieril
La notación ingenieril funciona mejor en contextos técnicos donde las mediciones utilizan prefijos de unidades SI. La documentación de electrónica, los artículos científicos y las especificaciones de ingeniería utilizan comúnmente esta notación.
Al documentar un circuito con un condensador de 4,7×10⁻⁶ faradios, la notación ingenieril muestra el valor como 4,7E-6. Los ingenieros reconocen esto inmediatamente como 4,7 microfaradios. Al mostrar una frecuencia de 2,4×10⁹ hercios, la notación ingenieril muestra 2,4E9, que los ingenieros reconocen como 2,4 gigahercios.
Esta notación es menos adecuada para audiencias generales que pueden no entender la notación exponencial. Los contadores de redes sociales, precios de comercio electrónico y paneles orientados al consumidor deben usar notación estándar o notación compacta en su lugar.
No uses notación de ingeniería cuando la precisión es crítica y todos los dígitos importan. Los cálculos financieros, documentos legales y registros de auditoría requieren representaciones decimales exactas. Un saldo bancario debe mostrar 1.234,56 $, no 1,23456E3.
Considera tu audiencia. Los ingenieros, físicos y profesionales técnicos esperan y entienden la notación de ingeniería. Los consumidores generales encuentran la notación estándar o la notación compacta más fácil de leer.