美文网首页
js 精准运算

js 精准运算

作者: 发光驴子 | 来源:发表于2019-03-12 17:25 被阅读0次
  //加法函数
  function accAdd(arg1, arg2) {
      var r1, r2, m;
      try {
          r1 = arg1.toString().split(".")[1].length;
      }
      catch (e) {
          r1 = 0;
      }
      try {
          r2 = arg2.toString().split(".")[1].length;
      }
      catch (e) {
          r2 = 0;
      }
      m = Math.pow(10, Math.max(r1, r2));
      return (arg1 * m + arg2 * m) / m;
  } 
  //给Number类型增加一个add方法,,使用时直接用 .add 即可完成计算。 
  Number.prototype.add = function (arg) {
      return accAdd(arg, this);
  };


  //减法函数
  function Subtr(arg1, arg2) {
      var r1, r2, m, n;
      try {
          r1 = arg1.toString().split(".")[1].length;
      }
            catch (e) {
          r1 = 0;
      }
      try {
          r2 = arg2.toString().split(".")[1].length;
      }
      catch (e) {
          r2 = 0;
      }
      m = Math.pow(10, Math.max(r1, r2));
       //last modify by deeka
       //动态控制精度长度
      n = (r1 >= r2) ? r1 : r2;
      return ((arg1 * m - arg2 * m) / m).toFixed(n);
  }

  //给Number类型增加一个add方法,,使用时直接用 .sub 即可完成计算。 
  Number.prototype.sub = function (arg) {
      return Subtr(this, arg);
  };


  //乘法函数
  function accMul(arg1, arg2) {
      var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
      try {
          m += s1.split(".")[1].length;
      }
      catch (e) {
      }
      try {
          m += s2.split(".")[1].length;
      }
            catch (e) {
      }
      return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
  } 
  //给Number类型增加一个mul方法,使用时直接用 .mul 即可完成计算。 
  Number.prototype.mul = function (arg) {
      return accMul(arg, this);
  }; 


  //除法函数
  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);
      }
  } 
  //给Number类型增加一个div方法,,使用时直接用 .div 即可完成计算。 
  Number.prototype.div = function (arg) {
      return accDiv(this, arg);
  };

加法亲测可用
作者:拔萝卜的码农
来源:CSDN
原文:https://blog.csdn.net/yafei450225664/article/details/53202687
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章

  • js 精准运算

    加法亲测可用作者:拔萝卜的码农来源:CSDN原文:https://blog.csdn.net/yafei45022...

  • JavaScript 02 (运算符和选择结构)

    js的关系运算符,js的逻辑运算符,js的赋值运算符,js的运算符的优先级问题,js的自增和自减,js的选择结构 ...

  • 前端(运算符)

    与或运算 Unicode编码 相等运算符 条件运算符 js操作属性 js函数

  • 运算符及js操作属性

    关系运算符 相等运算符 条件运算符 运算符的优先级 代码块 js操作属性 js操作style属性 js操作clas...

  • 2020-03-16

    JavaScript 初识 《① JS 速览——进入 JS 的世界》[编号:js_01] 《② 运算符、运算符优先...

  • js运算符

    js基础语法:运算符,判断语句,数据类型,js对象 一、运算符 赋值运算符 =算数运算符 +-*/% ++...

  • JS操作属性、函数

    条件运算符 运算符的优先级 代码块 JS操作属性 JS换肤 JS操作style属性 JS操作

  • Java精准计算

    之前遇到需要对结果集做精准运算的需求,在java中,double和folat是无法进行精准运算的,因为double...

  • 2018-12-01

    赋值运算符 关系运算符 Unicode编码 相等运算符 条件运算符 运算符的优先级 代码块 js操作属性 js换肤...

  • js 总结一 07-09

    ES6 一、js入门、js引入、变量、值类型、运算符 js引入代码如下 js变量代码如下: 值类型代码如下: 运算...

网友评论

      本文标题:js 精准运算

      本文链接:https://www.haomeiwen.com/subject/vfinpqtx.html