Ir al contenido

Dígitos significativos en Javascript

Hay ocasiones en los que manejamos valores con mucha precisión en su definición, pero de los cuales, nos puede llegar a interesar en un determinado momento el verlos como un valor general. Y es en este punto donde nos ayudan los dígitos significativos en Javascript.

Y, ¿qué es eso de los dígitos significativos en Javascript? La idea que subyace detrás es la siguiente, imaginemos que estamos contabilizando elementos y el valor que tenemos es de 12.163.903 pero nos piden un datos general. Es decir, lo que queremos indicar es que estamos en los 12 millones de elementos contabilizados. Pues esto es en lo que nos ayudan los datos significativos en Javascript.

Y para ello disponemos del objeto Intl.NumberFormat en Javascript. Pero, vamos por paso.

Lo primero que vamos a hacer es crear una lista de números. Para ello definiremos una constante con el array de números.

const numeros = [1235467.64, 24535467.12, 3456783.2, 15653231, 8976562, 3122122];

Definiendo la precisión de dígitos significativos

Sección titulada «Definiendo la precisión de dígitos significativos»

Y ahora iremos dando formato a esos números. Pero lo primero será definir la precisión que consideremos de nuestros números importantes. Eso nos lo ofrece el constructor de Intl.NumberFormat, el cual espera que le digamos la localización del idioma en el que trabajamos, en nuestro caso “es-ES” y el número de dígitos significativos. En nuestro caso vamos a indicar que hay dos números significativos.

const formato = new Intl.NumberFormat('es-ES', { maximumSignificantDigits: 2 });

Esto se hace mediante es segundo parámetro de opciones, el cual espera un elemento JSON y en concreto mediante la propiedad maximumSignificantDigits.

Lo que nos quedaría para poder aplicar este tipo de formato definido en el constructor sobre el número es llamar al método .format() que cogerá los valores y formateará el número.

console.log(formato.format(numero));

Como habíamos definido un conjunto de números para hacer la prueba vamos a recorrerlos e ir invocando al constructor y al método .format() de forma iterativa. Para ello vamos a utilizar una estructura for-each.

numeros.forEach(numero => {
const formato = new Intl.NumberFormat('es-ES', { maximumSignificantDigits: 2 });
console.log(numero + ' => ' + formato.format(numero));
});

Podemos ver los números que teníamos y los valores de dígitos significativos que nos muestra cuándo indicamos que la precisión que queremos es de 2.

  • 1235467.64 ⇒ 1.200.000
  • 24535467.12 ⇒ 25.000.000
  • 3456783.2 ⇒ 3.500.000
  • 15653231 ⇒ 16.000.000 (Aquí vemos que se redondea hacía arriba)
  • 8976562 ⇒ 9.000.000
  • 3122122 ⇒ 3.100.000

Espero el artículo os sea de utilidad.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Dígitos significativos en Javascript

El objeto Intl.NumberFormat nos permite realizar cosas como extraer los Dígitos significativos en Javascript.

Descargar código