美文网首页
使用underscorejs解决js的大数问题

使用underscorejs解决js的大数问题

作者: 放风筝的小小马 | 来源:发表于2018-07-19 09:51 被阅读68次

js的浮点运算存在精度问题
原因:js对于number类型的数使用的是IEEE754标准中的双精度数存储,总共64位,其中:1位符号位,11位指数位以及52位小数位;表示小数时,超出小数精度的要进行"零舍一入"操作,因此,对小数相加,实际也要对结果进行零舍一入操作,导致精度问题

首先进行大数计算配置:

window.math.config({
  number: 'BigNumber', // Default type of number:
                       // 'number' (default), 'BigNumber', or 'Fraction'
  precision: 64        // Number of significant digits for BigNumbers
});

调用方式:

function calculate(str) {
  return parseFloat(math.format(math.eval(str)));
}

注意:必须使用math.format()进行转换

相关文章

网友评论

      本文标题:使用underscorejs解决js的大数问题

      本文链接:https://www.haomeiwen.com/subject/ljkzpftx.html