Métodos para tratamiento de números
Como hemos indicado anteriormente, casi todo en Javascript es un objeto o se puede tratar como tal, como es el caso de los tipos de datos ‘number’ y ‘string’ (*).
En este apartado vamos a ver el tratamiento de variables númericas como objetos, a los que podemos aplicarles algunos métodos para manipular sus valores. Esta parte, la completaremos con el siguiente apartado, donde veremos como el objeto Math nos dará más posibilidades para realizar cálculos y aplicar funciones matemáticas.
Saber más (*): en Javascript existen tipos de datos simples (también llamados ‘primitivos‘), como ‘number’ y ‘string’ y tipos de datos complejos como ‘objeto’ (‘array’ se incluiría aquí también). Pues bien, Javascript tiene además los objetos ‘Number’ y ‘String’ que aunque son elementos distintos a los tipos de datos del mismo nombre, nos permiten tratar a estos últimos como objetos.
Aunque a este nivel de iniciación puede ser algo confuso de entender, basta por ahora con saber que se da esta circunstancia y que podemos utilizarla, como vamos a ver a través de una serie de propiedades y métodos que podemos asociarles.
Tratamiento de números
Si haces una operación con números decimales en Javascript, puede que en el resultado obtengas un gran número de decimales. Javascript dispone de diversos métodos para redondear cifras o acortar decimales. Pueden sernos muy útil para formatear resultados y cantidades varias: precios, porcentajes, etc… En todos los casos, el resultado que nos devuelven estos métodos es un ‘string’.
Los vemos:
Método toFixed
Permite fijar el número de decimales que tendrá el número, haciendo un redondeo.
Se aplica de la siguiente forma: variableNumerica.toFixed(x) , siendo x el nº de decimales al que queremos redondear (0, 1, 2….).
Método toPrecision
En este caso nos permitirá fijar el número de dígitos (x) que podrá tener el número, haciendo el redondeo correspondiente. Notación: variableNumerica.toPosition(x)
Método toExponential
Nos devuelve el número representado en notación exponencial con un número de decimales determinado (x). Notación: variableNumerica.toExponential(x)
Ejemplo
Vemos un ejemplo con los diferentes métodos. Comprueba el resultado en el editor online. Luego puedes variar los argumentos que se pasan a los diferentes métodos para ver como se modifican los resultados:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<script> var numeroEjemplo = 32.73412; //recordar que los decimales se separan con punto ( . ) var numero0 = numeroEjemplo.toFixed(0); var numero1 = numeroEjemplo.toFixed(1); var numero2 = numeroEjemplo.toPrecision(2); var numero3 = numeroEjemplo.toExponential(3); document.write("Al aplicar toFixed(0) a " + numeroEjemplo + " obtenemos: " + numero0 + "<br>"); document.write("Al aplicar toFixed(1) a " + numeroEjemplo + " obtenemos: " + numero1 + "<br>"); document.write("El aplicar toPrecision(2) a " + numeroEjemplo + " obtenemos: " + numero2 + "<br>"); document.write("Al aplicar toExponential(3) a " + numeroEjemplo + " obtenemos: " + numero3); </script> |
Conversión de tipos de datos: númericos <–> cadena de texto
Recomendamos en el apartado de operadores numéricos, el asignar a una variable con tipo de datos de texto (string), el tipo de dato numérico (number), según el tratamiento que fuéramos a hacer de ese valor. Bien por ese motivo o porque nos sea simplemente necesario hacer cambio entre esos dos data type, conviene saber que disponemos de una serie de funciones generales (no asociados a ningún objeto) y métodos que nos permiten realizar tal conversión. Vamos a ver algunas:
parseInt(«string«)
Convierte las cadenas de números a enteros. Si tiene parte decimal, la elimina sin redondear. Ejemplo:
var numEntero = parseInt("7.824"); —> el valor de ‘numEntero’ es 7
Nota: recordar que el ‘punto’, en vez de la ‘coma’, es la separación de decimales en notación anglosajona
parseFloat(«string«)
En este caso, sí preserva la parte decimal:
var numDecimal = parseFloat("7.824"); —> el valor de ‘numDecimal’ es 7,824
Number(«string«)
En este caso convierte al número idéntico (sea entero o decimal) que contiene la cadena
var numero1 = Number("33"); –> numero1 tiene el valor 33
var numero2 = Number("33.1512"); –> numero2 tiene el valor 33,1512
variableNumerica.toString()
Método que nos convierte un número a su cadena de texto equivalente. Ejemplo:
1 2 |
var numEjemplo = 2017; var numEjComoTexto = numEjemplo.toString(); |
la variable ‘numEjComotexto’ toma el valor «2017».