关闭

javascript两个数值简单运算精度修正函数

标签: javascriptcfunctionstring
713人阅读 评论(0) 收藏 举报

之前发在csdn的javascript版
------------------------------
/*
* 数值简单运算精度修正函数
* 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, '-') 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3090次
    • 积分:64
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档
    最新评论