Javascript优化后的加减乘除(解决js浮点数计算bug)

来源:互联网 发布:淘宝形象模特 编辑:程序博客网 时间:2024/05/01 05:26
<codeclass=" hljs javascript">function add(a, b) {
    var c, d, e;
    try{
        c = a.toString().split(".")[1].length;
    }catch(f) {
        c = 0;
    }
    try{
        d = b.toString().split(".")[1].length;
    }catch(f) {
        d = 0;
    }
    returne = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;
}
 
function sub(a, b) {
    var c, d, e;
    try{
        c = a.toString().split(".")[1].length;
    }catch(f) {
        c = 0;
    }
    try{
        d = b.toString().split(".")[1].length;
    }catch(f) {
        d = 0;
    }
    returne = Math.pow(10, Math.max(c, d)), (mul(a, e) - mul(b, e)) / e;
}
 
function mul(a, b) {
    var c = 0,
        d = a.toString(),
        e = b.toString();
    try{
        c += d.split(".")[1].length;
    }catch(f) {}
    try{
        c += e.split(".")[1].length;
    }catch(f) {}
    returnNumber(d.replace(".","")) * Number(e.replace(".","")) / Math.pow(10, c);
}
 
function div(a, b) {
    var c, d, e = 0,
        f = 0;
    try{
        e = a.toString().split(".")[1].length;
    }catch(g) {}
    try{
        f = b.toString().split(".")[1].length;
    }catch(g) {}
    returnc = Number(a.toString().replace(".","")), d = Number(b.toString().replace(".","")), mul(c / d, Math.pow(10, f - e));
}</code>


转载自:http://www.2cto.com/kf/201502/376763.html