美文网首页
乘除法精度

乘除法精度

作者: chenshuwen | 来源:发表于2018-07-23 10:24 被阅读0次
    chufaFunction: (arg1, arg2) => {
    /*
    * @除法精确度计算(有无小数点计算)
    * @params :
    *         { arg1 }除数; { arg2 } 被除数
    *        { t1 }除数小数点位数 { t2} 被除数小数点位数
    *@methods:
    *      1)用split切割判断小数点位数
    *      2)Math.pow(x, y) x的y次幂
    *      3)toFixed(2) 方法可把 Number 四舍五入为指定小数位数的数字。
    *      4)replace('.', ''));制定字符替换去掉小数点
    * --------------有小数点处理-------------------------------------
    * @主要针对小数处理
    * 1)首先准化成整数做除法
    * 2)其次乘以被除数减去除数差的 10的n次幂
    */
    var t1 = 0, t2 = 0, r1, r2;
    try {
      t1 = arg1.toString().split('.')[1].length;
    } catch (e) {
      t1 = 0;
    }
    try {
      t2 = arg2.toString().split('.')[1].length;
    } catch (e) {
      t2 = 0;
    }
    r1 = Number(arg1.toString().replace('.', ''));
    r2 = Number(arg2.toString().replace('.', ''));
    return Number(((r1 / r2) * Math.pow(10, t2 - t1)).toFixed(8));
    },
    

    chengFaFunction: (arg1, arg2) => {
    /*
    *@同上除法
    */
    var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
    try {
      m += s1.split('.')[1].length;
    } catch (e) {
      m += 0;
    }
    try {
      m += s2.split('.')[1].length;
    } catch (e) {
      m += 0;
    }
    return Number((Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m)).toFixed(8));
    },

    相关文章

      网友评论

          本文标题:乘除法精度

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