使用math.js进行javascript精确计算

  javascript进行浮点运算会有尾差,比如算个0.1+0.7试试,得到的不是0.8 。这个问题可以使用math.js解决。

Math.js是一款开源的JavaScript和Node.js数学库,用于处理数字、大数、复数、单位和矩阵。官网: http://mathjs.org/

<html>
<head>
<script src="math.js"></script>
<script type="text/javascript">
function fn_click(p){
    var a , b;
    a=0.7;
    b=0.1;
    
    if(p==1){
        alert(a+b);
    }else if(p==2){
        alert(eval("a+b"));
    }else if(p==3){
        math.config({
            number: 'BigNumber'
        });
        var result = math.parser().eval(a + "+" + b)
        alert(result);
    }
}
</script>
</head>
<body>
    <input type="button" value="0.7+0.1"  onclick="fn_click(1);" />
    <input type="button" value="eval(0.7+0.1)"  onclick="fn_click(2);" />
    <input type="button" value="mathjs(0.7+0.1)"  onclick="fn_click(3);" />
</body>
</html>

上面分别用3种方法计算0.7+0.1,可以看到使用math.parser().eval()计算得到了准确的结果0.8

posted on 2016-12-27 13:47  肥兔子爱豆畜子  阅读(13271)  评论(0编辑  收藏  举报

导航