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.
Creando una lista de números
Sección titulada «Creando una lista de números»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.
Aplicando el formato a los números
Sección titulada «Aplicando el formato a los números»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));});Resultado
Sección titulada «Resultado»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.
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.