BigDecimal en JavaScript
Este artículo discutirá los usos de BigDecimal
en JavaScript.
Uso de BigDecimal
en JavaScript
Antes de trabajar en cómo funciona BigDecimal
en JavaScript, debe conocer BigDecimal
. Un BigDecimal
consta de un valor entero de precisión arbitraria sin escalar con una escala de enteros de 32 bits.
Si la escala es cero o positiva, es el número de dígitos a la derecha del punto decimal. Si el entero es negativo, el valor sin escalar se multiplica por diez elevado a la potencia de la negación de la escala.
BigDecimal
determina la igualdad y los códigos hash utilizando la representación decimal de enteros binarios de punto flotante. Esto produce resultados diferentes a la conversión entre números largos y dobles, que utiliza la forma precisa.
Tenga en cuenta que debe instalar el paquete npm
de BigDecimal
antes de ejecutar el código.
Guarde el siguiente código como un archivo de extensión js
.
let bDecimal = require('bigdecimal');
let num = new bDecimal.BigInteger('123456abcdefghijklmn7890', 25);
console.log('num is ' + num);
let newD = new bDecimal.BigDecimal(num);
let k = new bDecimal.BigDecimal('4567890.12345612345678901234567890123');
console.log('newD * k = ' + newD.multiply(k));
let two = new bDecimal.BigDecimal('2');
console.log('Average = ' + newD.add(k).divide(two));
Puede ver diferentes métodos como multiply()
, add()
, divide()
. El método add()
agrega un valor de objeto BigDecimal
a otro donde newD
es un objeto BigDecimal
, newD
se agrega a k
.
Mientras que el método multiply()
multiplica un valor de objeto BigDecimal
por otro, el método divide()
divide el valor de un BigDecimal
por otro.
Al convertir un Double o Float en un BigDecimal
, se debe tener precaución ya que la representación de fracción binaria de Double y Float no se transfiere simplemente a una representación decimal.
Producción:
BigDecimal
es ideal para la aritmética de datos financieros o cualquier cosa que exceda el tipo JavaScript Integer (IEEE-754 float). Decimal no se incluyó en los nuevos estándares ECMAScript.
Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.
LinkedIn