Cómo formatear números en notación ingenieril

Utilice la notación ingenieril para mostrar números con exponentes que se alinean con los prefijos de unidades SI

Introducción

La notación ingenieril es una forma de escribir números utilizando potencias de 10 donde el exponente siempre es 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 utilizan prefijos SI. Un condensador clasificado como 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 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 siempre es 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 por E y el exponente. La E significa exponente e indica la 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 utiliza letras como K, M y B para representar magnitudes. La notación ingenieril muestra explícitamente la potencia de 10 utilizando notación exponencial.

Por qué la notación ingenieril utiliza múltiplos de tres

La restricción a múltiplos de 3 existe porque los prefijos de unidades SI aumentan o disminuyen por 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 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 utiliza 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 SI.

Sin esta restricción, necesitarías realizar aritmética mental para convertir entre notación y prefijos SI. Con la restricción, la conversión es inmediata.

En qué se diferencia 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 utiliza 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 decimal. El formateador ingenieril produce 987.654E6, colocando tres dígitos antes del 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 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 como "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 basado en la magnitud del número. El exponente siempre es 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 basándose en el valor del número.

Cómo la notación ingenieril formatea diferentes magnitudes

La notación ingenieril se aplica a todas las escalas, desde números muy pequeños hasta muy grandes. Entender cómo diferentes magnitudes se mapean a 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 por debajo de 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 cercanos a 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 a 0 elimina todos los decimales, mostrando solo la parte entera del coeficiente.

También puedes imponer un número mínimo de decimales para mantener un formato consistente entre 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 asegura 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 se mantiene constante, 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 que utiliza E y el valor del exponente sigue las convenciones científicas internacionales y no cambia entre las diferentes configuraciones regionales.

Combinando 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 utilizas 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. Al establecerla en "always" se 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 comúnmente utilizan 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 de exponentes. Los contadores de redes sociales, los precios de comercio electrónico y los paneles orientados al consumidor deberían usar notación estándar o notación compacta en su lugar.

No use notación ingenieril cuando la precisión sea crítica y todos los dígitos sean importantes. Los cálculos financieros, documentos legales y registros de auditoría requieren representaciones decimales exactas. Un saldo bancario debería mostrar $1,234.56, no 1.23456E3.

Considere a su audiencia. Ingenieros, físicos y profesionales técnicos esperan y entienden la notación ingenieril. Los consumidores generales encuentran más fácil de leer la notación estándar o la notación compacta.