Controlando los decimales en JavaScript

Las operaciones matemáticas tienen una gran importancia en nuestro día a día, siempre estamos realizando sumas, restas, a veces multiplicamos o dividimos. Estas operaciones en los lenguajes de programación tienen una relevancia importante. Al presentar resultados con nuestros desarrollos debemos tratar de ser los mas exactos posibles. Por ejemplo, un error de calculo en una operación bancaria puede ser perjudicial o beneficioso para alguien.
Hoy vamos a ver un poco como trabaja JavaScript con los decimales, nos vamos a centrar en la operación de la división. Aunque puedes usar toda esta teoría de igual forma para las otras operaciones aritméticas.
En aritmética la división es una de sus operaciones básicas, consiste en averiguar cuantas veces un numero esta contenido en otro numero. Se puede considerar una operación equivalente a la resta ya que el número dividido se puede colocar como equivalente en una resta.
Por ejemplo: 10 / 5 = 2
Su equivalente:
- (1ra resta) 10 – 5 = 5
- (2da resta) 5 – 5 = 0
Por lo tanto, se concluye que tenemos 2 restas y es el equivalente a dividir 10 / 5 = 2.
Dicho esto, con JavaScript podemos realizar operaciones matemáticas sin ningún problema. Es un lenguaje con distintos métodos que permiten poder realizar varias acciones sobre los datos.
A continuación una muestra de como JavaScript define a los números
- var a=6; //number;
- var b=3.14; //number with decimal;
- var c=2e3; //exponential number (2000)
- var d=0xa; //number in hexadecimal
- var e=010; //number in octal
- var f=0o10; //number in octal
- var g=0b100; //number in binary
- var h=NaN; //not a number
- var i=Infinity; //Output: number more than 10308
Los números pueden ser binarios, octales, decimales y hexadecimal
Number | Binary (0-1) (2 bit) | Octal (0-7) (8 bit) | Decimal (0-9) (10 bit) | Hexadecimal (0-f) (16 bit) |
0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 | 2 |
8 | 1000 | 10 | 8 | 8 |
10 | 1010 | 12 | 10 | A |
15 | 1111 | 17 | 15 | F |
16 | 10000 | 20 | 16 | 10 |
Métodos para la conversión de string a números:
- var a="100"; //100
- var b="100.5"; //100.5
- var c="100px"; ///NaN - Not a Number
- var d="abc100"; ///NaN - Not a Number
parseInt() Método que permite convertir strings en números binarios, octales, hexadecimales o cualquier otra base en un entero. Para poder definir la base este método acepta un segundo argumento opcional llamado radix.
parseFloat() Este método puede convertir strings en números binarios, octales y hexadecimales a decimales.
Ejemplos:
- var a="50"; //50
- var b="50.5"; //50.5
- var c="100px"; //100
- var d="100.5px"; //100.5
- var e="abc100"; //NaN - Not a Number
Cuando JavaScript recorre un string y se encuentra con el primer carácter no numérico se procede a ignorar el resto del string. Ahora bien si el primer carácter encontrado no es convertible a número, entonces obtendremos el resultado de NaN (Not a Number).
isNaN, no es una función numérica, dicha función devuelve un valor booleano.
Ejemplos:
- isNaN(10) // returns false
- isNaN("10") // returns false
- isNaN("a") // returns true
- isNaN("2a") // returns true
Con toda esta teoría, vamos a la parte practica
1.- En un documento html vamos a definir una función que tome dos valores de un formulario y los divida
2.- Posteriormente vamos a crear una función con los distintos métodos
3.- Por ultimo en nuestra pagina html colocamos los input y botones para procesar las divisiones
4.- Nuestro resultado sera el siguiente
5.- Probemos los códigos, vamos a dividir 999.99 entre 24, obteniendo los siguientes resultados
Importante ver como obtenemos resultados con diferente grado de precisión, todo depende de cuales sean nuestros objetivos a la hora de obtenerlos.
Espero sea de utilidad esta información,
Por acá te dejo el repositorio GitHub para que puedas practicar con el código.
Sigamos en contacto
Carlos Lozada
<Que tengas una programación de marca mayor/>


