BigDecimal 在 JavaScript 中的应用

本文将讨论 JavaScript 中 BigDecimal 的用法。

在 JavaScript 中使用 BigDecimal

在研究 BigDecimal 如何在 JavaScript 中工作之前,你必须了解 BigDecimalBigDecimal 由具有 32 位整数刻度的未缩放任意精度整数值组成。

如果小数位数为零或正数,则为小数点右侧的位数。如果整数为负数,则将未缩放的值乘以 10 的负数次方。

BigDecimal 使用二进制浮点整数的十进制表示来确定相等和哈希码。这与使用精确形式的 Long 和 Double 数字之间的转换产生不同的结果。

请注意,在运行代码之前,你必须安装 BigDecimal 的 npm 包。

将以下代码另存为 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));

你可以看到不同的方法,例如 multiply()add()divide()add() 方法将一个 BigDecimal 对象值添加到另一个 newD 是 BigDecimal 对象的位置,newD 添加到 k

multiply() 方法将一个 BigDecimal 对象值乘以另一个,而 divide() 方法将一个 BigDecimal 值除以另一个值。

将 Double 或 Float 转换为 BigDecimal 时,必须小心,因为 Double 和 Float 的二进制小数表示不会简单地转换为十进制表示。

输出:

BigDecimal 在 JavaScript 中的应用

BigDecimal 非常适合金融数据算术或任何超过 JavaScript 整数(IEEE-754 浮点)类型的数据。新的 ECMAScript 标准中不包含十进制。