美文网首页程序员开发程序员
Js 计算不精确的问题(使用math.js)

Js 计算不精确的问题(使用math.js)

作者: i高安 | 来源:发表于2019-09-27 09:24 被阅读0次

    最近在做一个小系统,里面包含了价格的运算,由于整个系统都是后台页面,所以第一时间的想法就是在后台运算,然后把结果返回到前端。但是写完之后感受了一下体验不太好,所以就前后端都判断,双重保障......

    平常写后台都知道目前很多编程语言,直接计算会不精确,同样的使用Js运算也一样,是因为在计算机语言计算时会把十进制转为二进制,再计算。但是由于一些小数在换成二进制的时候出现了无限循环,又由于位数有限,就会截取一部分,导致十进制数不精确。

    但是各大编程语言也都封装了自己的精确计算库,Js我选择使用math.js

    安装方式

    1.包管理器安装math.js

    npm install mathjs
    

    2.cdn

    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/4.0.1/math.min.js"></script>
    

    示例

    // functions and constants
    math.round(math.e, 3)                // 2.718
    math.atan2(3, -3) / math.pi          // 0.75
    math.log(10000, 10)                  // 4
    math.sqrt(-4)                        // 2i
    math.pow([[-1, 2], [3, 1]], 2)       // [[7, 0], [0, 7]]
    
    // expressions
    math.evaluate('12 / (2.3 + 0.7)')    // 4
    math.evaluate('12.7 cm to inch')     // 5 inch
    math.evaluate('sin(45 deg) ^ 2')     // 0.5
    math.evaluate('9 / 3 + 2i')          // 3 + 2i
    math.evaluate('det([-1, 2; 3, 1])')  // -7
    
    // chained operations
    math.chain(3)
        .add(4)
        .multiply(2)
        .done() // 14
    

    相关文章

      网友评论

        本文标题:Js 计算不精确的问题(使用math.js)

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