JavaScript浮点数计算bug

来源:互联网 发布:掌上电力说网络有问题 编辑:程序博客网 时间:2024/05/17 03:21

程序内容来源:http://www.2cto.com/kf/201502/376763.html,也不晓得它是不是从哪儿转的

亲测四个函数可用,留着了:

<!DOCTYPE html><html><head><script src="jquery-1.5.1.js"></script><script>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;    }    return e = 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;    }    return e = 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) {}    return Number(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) {}    return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), mul(c / d, Math.pow(10, f - e));}$(document).ready(function(){var index = 1;var num = 12.35;var result;$("#btn").click(function(){result = mul(index,num);$("#result").text(index++ + " x " + num + " = " + result + " " + result.toFixed(1));});});</script></head><body><button id="btn">click</button><span id="result">0</span></body></html>



0 0
原创粉丝点击