美文网首页
前端js中的算数精确运算加,减,乘,除,数组求和函数整理

前端js中的算数精确运算加,减,乘,除,数组求和函数整理

作者: 自己对了世界就对了 | 来源:发表于2018-11-23 11:59 被阅读35次

    乘法

      const mul = function(a, b) {
      let c = 0
      const d = a.toString()
      const e = b.toString()
      try {
        c += d.split('.')[1].length
      } catch (f) { console.log() }
      try {
        c += e.split('.')[1].length
      } catch (f) { console.log() }
      return Number(d.replace('.', '')) * Number(e.replace('.', '')) / Math.pow(10, c)
    }
    

    加法

    const add = function(a, b) {
      let c = 0
      let d = 0
      let e = 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 (mul(a, e) + mul(b, e)) / e
    }
    

    减法

    const sub = function(a, b) {
      let c = 0
      let d = 0
      let e = 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 (mul(a, e) - mul(b, e)) / e
    }
    

    除法

    const div = function(a, b) {
      let c = 0
      let d = 0
      let e = 0
      let f = 0
      try {
        e = a.toString().split('.')[1].length
      } catch (g) { console.log() }
      try {
        f = b.toString().split('.')[1].length
      } catch (g) { console.log() }
      c = Number(a.toString().replace('.', ''))
      d = Number(b.toString().replace('.', ''))
      return mul(c / d, Math.pow(10, f - e))
    }
    

    注:由于算数运算中的加,减,除都是以乘法运算为基础进行的数学运算,所以在用到除乘法外的其他数学运算的时候,乘法必须给带上

    数组求和

    // 方法1
    const sum = function(arr) {
      var len = arr.length
      if (len === 0) {
        return 0
      } else if (len === 1) {
        return arr[0]
      } else {
        return arr[0] + sum(arr.slice(1))
      }
    }
    // 方法2
    const sum = function(arr){
      arr.reduce((p, v, i , a) => {
        return p + v
    })
    

    相关文章

      网友评论

          本文标题:前端js中的算数精确运算加,减,乘,除,数组求和函数整理

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