为什么大整数在计算下面的表达式时会给我'0`?

时间:2018-02-16 20:23:02

标签: javascript math biginteger

我使用big-integer模块来处理大数字。当我尝试计算以下表达式时,我得到0

console.log(bigInt('13775000000000000000').divide('2500000000000000000000')); // 0

但是当试图用纯JS数字计算时,它给了我0.00551

console.log(13775000000000000000 / 2500000000000000000000); // 0.00551

为什么会这样?

2 个答案:

答案 0 :(得分:2)

来自documentation

  

分(数)

     

执行整数除法,忽略余数。

所以结果是零。

答案 1 :(得分:1)

来自https://github.com/peterolson/BigInteger.js

  

分(数)

     

执行整数除法,忽略余数。

分割方法执行整数分割。

来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators

1 / 2      // returns 0.5 in JavaScript
1 / 2      // returns 0 in Java 
// (neither number is explicitly a floating point number)

JS的/执行浮点数分割。