Notaciones numéricas
Habitualmente un valor numérico lo escribimos como una sucesión de dígitos con un punto decimal y quizás un signo. Pero hay otras formas de representar valores numéricos.
El objeto Number posee varios métodos para convertir cualquier cantidad numérica a representaciones en forma de strings usando diferentes diferentes notaciones matemáticas.
- toFixed() Notación en coma fija
- toExponential() Para la conocida como notación científica
- toPrecision() Notación científica, otra forma
Además de estos métodos enfocados a las notaciones, existe el método toString() que permite cambios de base
El método numero.toFixed(dec) Notación en coma fija devuelve una cadena con la manera más habitual de representar un número: una parte entera, un punto decimal y un número de decimales indicado por el argumento.
Si no hay suficiente decimales en el número la cadena se completa con ceros.
Si no se usa argumento se transforma en un string sin decimales.
var distancia = 42.5;
var tiempo = 3;
var velocidad;
velocidad = distancia/tiempo;
console.log("Velocidad "+velocidad);
console.log("dos decimales "+velocidad.toFixed(2));
console.log("tres decimales "+velocidad.toFixed(3));
Como se ve en el ejemplo podemos escribir el resultado con la precisión que queramos usando el argumento del método toFixed(). Si es necesario el valor es redondeado al entero más próximo
Con el método toPrecision( digitos) se obtiene una representación del número en notación como fija, pero en esta ocasión el argumento indica el número total de dígitos significativos de la cadena. Se cuentan los dígitos distintos de cero.
var distancia = 42.5;
var tiempo = 3;
var velocidad;
velocidad = distancia/tiempo;
console.log("Velocidad "+velocidad);
console.log("tres dígitos"+velocidad.toPrecision(3));
console.log("cuatro dígitos"+velocidad.toPrecision(4));
Si el número de dígitos pedidos es menor que la parte entera del número se convierte a notación científica (es la única forma de poder usar un número de cifras significativas pedido en ese caso). Mira este caso en este ejemplo
var distancia = 257;
var tiempo = 2;
var velocidad;
velocidad = distancia/tiempo;
console.log("Velocidad "+velocidad);
console.log("1 dígitos "+velocidad.toPrecision(1));
Como ves se elimina incluso la parte decimal y redondea la parte entera para dejar solo un dígito distinto de cero (un solo dígito significatvo).
Con el método toExponential() se obtiene una representación del número en notación científica. Esta notación consiste en un número decimal de 1 a 9 multilicado por una potencia de 10. Como en los anteriores el argumento permite controlar la precisión de la conversión, en este caso este argumento indica el número de decimales de la parte entera
var distancia = 257;
var tiempo = 2;
var velocidad;
velocidad = distancia/tiempo;
console.log("Velocidad "+velocidad);
console.log("1 dígitos "+velocidad.toExponential(3));
En todos los casos si no existen decimales suficientes se completa con cero, así un entero puede convertirse en un cadena ccn varios ceros en la parte decimal o como entero sin parte decimal
De la misma forma estos métodos pueden usarse para redondear los números al mismo tiempo que se convierten en cadenas
En estas conversiones realmetne el número no se transforma sino que se crea una cadena nueva con la notación elegida.