img
Desarrollo

Controlando los decimales en JavaScript

Mar 27, 2021   Carlos Alberto Lozada
   

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)

00000
11111
210222
810001088
1010101210A
1511111715F
1610000201610

Métodos para la conversión de string a números:

Number() Es un método que convierte strings en números, puede convertir tanto números flotantes, decimales y/o enteros. Es importante considerar que si un string contiene valores como alfabetos o caracteres especiales, la función numérica devolverá NaN.(Mas adelante definiremos esta función)

Ejemplos:
  • 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.

Ejemplo:
var iNum1 = parseInt ("AF", 16); // devuelve 175

Importante tener en cuenta que lo navegadores modernos por defecto trabajan en base decimal.

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/> 


Destacados