您的位置:首页 > Web前端 > JavaScript

js中数字计算精度(经测试,比较好)

2010-10-11 10:38 267 查看
------------------------------

/*

* 数值简单运算精度修正函数

* m 数值1(number)

* n 数值2(number)

* op 操作符(string)

*/

function fixMath(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 '+':

case '-':

c = Math.max(x,y);

m = Math.round(m*c);

n = Math.round(n*c);

break;

case '*':

c = x*y

m = Math.round(m*x);

n = Math.round(n*y);

break;

case '/':

c = Math.max(x,y);

m = Math.round(m*c);

n = Math.round(n*c);

c = 1;

break;

}

return eval("("+m+op+n+")/"+c);

}

用法如下:

-----------------------

fixMath(2.3, 1.9, '*')

fixMath(1.98, 1.9, '-')

fixMath(83.50, 74.15, '-')

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xjdawu/archive/2007/09/27/1803204.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: