除大数时有没有办法得到更精确的结果?

Is there a way to get more precise result when dividing Big Number?

我需要对 Big Numbers 进行运算,但我需要结果准确,如下所示:

const BN = require('bn.js');
var a = 11060622312717714974
var b = 1570481433500000000000;
console.log(a/b); //0.0070428227146040415

当我使用 Big Number 时,我只得到 0,没有精度:

var aBN = new BN('11060622312717714974');
var bBN = new BN('1570481433500000000000');
console.log(aBN.div(bBN).toString()); //0

这个库能得到精确的结果吗?

不熟悉这个库,但是看了一下 README.md 文件,它说:

Note: decimals are not supported in this library.

所以,据此,答案是否定的。

参见https://github.com/indutny/bn.js/#usage

精确在计算机科学中是一个有趣的词,JavaScript也不例外。

注意 输入输出 的比较:

console.log( 11060622312717714974 )

你并不总能得到你想要的。

还有这样的情况:

console.log( .1 + .2 );
console.log(  (.1 + .2) === .3 );

所以,可能不是您想听到的,但是您可以预先了解这一点,也许 可以解决它。

无论如何,结帐https://github.com/MikeMcl/bignumber.js/