除以大数时,是否有办法获得更精确的结果?

时间:2019-03-06 19:51:49

标签: javascript npm web3

我需要对大数进行运算,但是我需要精确的结果,如下所示:

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

当我使用大数字时,我只会得到0,而没有精度:

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

使用此库能否获得准确的结果?

2 个答案:

答案 0 :(得分:4)

不熟悉该库,但是查看了README.md文件,它说:

  

注意:此库中不支持小数。

因此,据此答案是否定的。

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

答案 1 :(得分:0)

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

请注意,将输入与该输入的输出进行比较:

console.log( 11060622312717714974 )

您不一定总能得到想要的东西。

有些情况是这样的:

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

因此,可能不是您想听的,但是您可以先也许解决这个问题。

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