zoukankan      html  css  js  c++  java
  • Js修复四则运算浮点数精度问题

    var preMath = function () {
        return {
            //修复四则运算浮点数精度问题
            fixArithmetic: function (m, n, op) {
                var a = (m + "");
                var b = (n + "");
                var x = 1;
                var y = 1;
                var c = 1;
                if (a.indexOf(".") > 0) {
                    x = Math.pow(10, a.length - a.indexOf(".") - 1);
                }
                if (b.indexOf(".") > 0) {
                    y = Math.pow(10, b.length - b.indexOf(".") - 1);
                }
                switch (op) {
                    case '+':
                        c = Math.max(x, y);
                        m = Math.round(m * c);
                        n = Math.round(n * c);
                        return eval("(" + m + op + n + ")/" + c);
                    case '-':
                        c = Math.max(x, y);
                        m = Math.round(m * c);
                        n = Math.round(n * c);
                        n = -n;
                        op = "+";
                        return eval("(" + m + op + n + ")/" + c);
                    case '*':
                        c = x * y;
                        m = Math.round(m * x);
                        n = Math.round(n * y);
                        return eval("(" + m + op + n + ")/" + c);
                    case '/':
                        c = Math.max(x, y);
                        m = Math.round(m * c);
                        n = Math.round(n * c);
                        c = 1;
                        return eval("(" + m + op + n + ")/" + c);
                }
            }
        };
    }();
  • 相关阅读:
    数据库
    数据库
    数据库
    数据库
    数据库
    数据库
    windows
    LeetCode : Word Pattern
    LeetCode : Perfect Number
    LeetCode : Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/ms-grf/p/6650208.html
Copyright © 2011-2022 走看看