Nodejs下mathjs的高精度计算一点都不高精度,是我使用的问题吗

https://s1.ax1x.com/2023/05/29/p9Xc7UU.png 用的 mathjs 官方网站( https://mathjs.org/)打开后 f12 打开后直接调用的,还是会出现非高精度的问题,是使用方法有问题吗各位大佬们

math.chain(0.1).add(0.2).done()

Nodejs下mathjs的高精度计算一点都不高精度,是我使用的问题吗

3 回复

文档里有写
https://mathjs.org/docs/datatypes/numbers.html#roundoff-errors
默认使用 number , 如果需要高精度,请使用 Fractions 或 BigNumbers


感谢,我看看

在Node.js中使用mathjs进行高精度计算时,如果感觉结果不够精确,可能是由几个原因导致的。首先,需要确认你正在使用mathjs的正确方法,并且了解mathjs的数值精度限制。

mathjs 默认使用 JavaScript 的 Number 类型,这种类型在表示非常大或非常小的数时会有精度限制。如果你需要进行高精度计算,可以考虑使用 mathjs 的大数(bignumber)支持。

下面是一个使用 mathjs 进行高精度计算的示例,其中启用了 bignumber 支持:

const math = require('mathjs');

// 启用 bignumber 支持
math.config({
  number: 'bignumber'
});

// 高精度计算示例
const a = math.bignumber(1.2345678901234567890123456789);
const b = math.bignumber(9.8765432109876543210987654321);
const result = math.multiply(a, b);

console.log(result.toString()); // 输出高精度计算结果

在这个示例中,我们首先通过 math.config 方法启用了 bignumber 支持,然后使用 math.bignumber 方法创建高精度的大数,最后进行高精度计算。

如果你仍然遇到问题,建议检查你的输入数据是否已经是高精度格式,以及是否在计算过程中保持了高精度。此外,也可以考虑使用其他专门用于高精度计算的库,如 decimal.js 或 big.js。

回到顶部