js浮点计算

来源:互联网 发布:算法入门书籍推荐 编辑:程序博客网 时间:2024/06/06 03:41
function accAdd(h, g) {    var f, d, b, j;    try {        f = h.toString().split(".")[1].length    } catch (i) {        f = 0    }    try {        d = g.toString().split(".")[1].length    } catch (i) {        d = 0    }    j = Math.abs(f - d);    b = Math.pow(10, Math.max(f, d));    if (j > 0) {        var a = Math.pow(10, j);        if (f > d) {            h = Number(h.toString().replace(".", ""));            g = Number(g.toString().replace(".", "")) * a        } else {            h = Number(h.toString().replace(".", "")) * a;            g = Number(g.toString().replace(".", ""))        }    } else {        h = Number(h.toString().replace(".", ""));        g = Number(g.toString().replace(".", ""))    }    return (h + g) / b}function accSub(f, d) {    var c, b, a, h;    try {        c = f.toString().split(".")[1].length    } catch (g) {        c = 0    }    try {        b = d.toString().split(".")[1].length    } catch (g) {        b = 0    }    a = Math.pow(10, Math.max(c, b));    h = (c >= b) ? c : b;    return ((f * a - d * a) / a).toFixed(h)}function accMul(d, b) {    var a = 0      , f = d.toString()      , c = b.toString();    try {        a += f.split(".")[1].length    } catch (g) {}    try {        a += c.split(".")[1].length    } catch (g) {}    return Number(f.replace(".", "")) * Number(c.replace(".", "")) / Math.pow(10, a)}function accDiv(arg1, arg2) {    var t1 = 0, t2 = 0, r1, r2;    try {        t1 = arg1.toString().split(".")[1].length    } catch (e) {}    try {        t2 = arg2.toString().split(".")[1].length    } catch (e) {}    with (Math) {        r1 = Number(arg1.toString().replace(".", ""));        r2 = Number(arg2.toString().replace(".", ""));        return (r1 / r2) * pow(10, t2 - t1)    }}