美文网首页
浮点数计算

浮点数计算

作者: 禾小沐的技术与生活 | 来源:发表于2018-12-21 18:14 被阅读0次

    偶尔在一些git代码中看到一些关于浮点数运算的代码,拿过来备用之后可以用下.

    //浮点数相加
    export const MathAdd = (a, b) => {
      a = a ? a : 0;
      b = b ? b : 0;
      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))), (MathMul(a, e) + MathMul(b, e)) / e;
    };
    
    // 浮点数相减
    export const MathSub = (a, b) => {
      a = a ? a : 0;
      b = b ? b : 0;
      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))), (MathMul(a, e) - MathMul(b, e)) / e;
    };
    
    // 浮点数相乘
    export const MathMul = (a, b) => {
      a = a ? a : 0;
      b = b ? b : 0;
      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);
    };
    
    // 浮点数相除
    export const MathDiv = (a, b) => {
      a = a ? a : 0;
      b = b ? b : 0;
      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('.', ''))), MathMul(c / d, Math.pow(10, f - e));
    };
    
    

    相关文章

      网友评论

          本文标题:浮点数计算

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