/**

  • 解决两个数相加精度失落问题
  • @param a
  • @param b
  • @returns {Number}
    */
export function floatAdd(a, b) {  var c, d, e;  if (undefined == a || null == a || "" == a || isNaN(a)) {    a = 0;  }  if (undefined == b || null == b || "" == b || isNaN(b)) {    b = 0;  }  try {    c = a.toString().split(".")[1].length;  } catch (f) {    c = 0;  }  try {    d = b.toString().split(".")[1].length;  } catch (f) {    d = 0;  }  e = Math.pow(10, Math.max(c, d));  return (floatMul(a, e) + floatMul(b, e)) / e;}

/**

  • 解决两个数相减精度失落问题
  • @param a
  • @param b
  • @returns {Number}
    */
export function floatSub(a, b) {  var c, d, e;  if (undefined == a || null == a || "" == a || isNaN(a)) {    a = 0;  }  if (undefined == b || null == b || "" == b || isNaN(b)) {    b = 0;  }  try {    c = a.toString().split(".")[1].length;  } catch (f) {    c = 0;  }  try {    d = b.toString().split(".")[1].length;  } catch (f) {    d = 0;  }  e = Math.pow(10, Math.max(c, d));  return (floatMul(a, e) - floatMul(b, e)) / e;}

/**

  • 解决两个数相乘精度失落问题
  • @param a
  • @param b
  • @returns {Number}
    */
export function floatMul(a = 0, 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);}

/**

  • 解决两个数相除精度失落问题
  • @param a
  • @param b
  • @returns
    */
export function floatDiv(a, b) {  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(".", "")), floatMul(c / d, Math.pow(10, f - e));}