【基础知识】两个正数相加

加法与减法:处理方式一致

function add(a, b) {
    a = parseFloat(a).toString();
    b = parseFloat(b).toString();
    let alen = 0, blen = 0;
    if(a.indexOf('.') > -1){
        alen = a.split('.')[1].length;
        a = a.replace('.','');
    }
    if(b.indexOf('.') > -1){
        blen = b.split('.')[1].length;
        b = b.replace('.','');
    }
    let clen = alen - blen;
    if(clen > 0){
        for(let i = 0; i < clen; i++) {
            b += '0'
        }
    }else if(clen < 0){
        clen = clen * (-1);
        for(let i = 0; i < clen; i++) {
            a += '0'
        }
    }
    let c = parseInt(a) + parseInt(b)
    let n = Math.pow(10, Math.max(alen,blen))
    return c/n;
}

相乘也是一样的原理(哈哈哈,数据不要太大哦);
只是add函数中最后得到的n要变成 nn;c变成ab

  function multiply() {
    //......省略相同的代码
    let c = parseInt(a) * parseInt(b)
    let n = Math.pow(10, Math.max(alen,blen))
    let n2 = n*n
    return c/n2;
  }

相除则 a/b 即可

function divede() {
    //......省略相同的代码
   return parseInt(a) * parseInt(b)
}

所以可以封装一个函数,通过第三个参数判断是哪种运算符
精度自行校验,看看是否需要再进一步的处理哦

//获取两个数的计算结果,默认为加法
function jisuan(a, b, type = 'plus') {
    a = parseFloat(a).toString();
    b = parseFloat(b).toString();
    let alen = 0, blen = 0;
    if(a.indexOf('.') > -1){
        alen = a.split('.')[1].length;
        a = a.replace('.','');
    }
    if(b.indexOf('.') > -1){
        blen = b.split('.')[1].length;
        b = b.replace('.','');
    }
    let clen = alen - blen;
    if(clen > 0){
        for(let i = 0; i < clen; i++) {
            b += '0'
        }
    }else if(clen < 0){
        clen = clen * (-1);
        for(let i = 0; i < clen; i++) {
            a += '0'
        }
    }
    if(type == 'plus'){ //加
        return (parseInt(a) + parseInt(b))/ Math.pow(10, Math.max(alen,blen))
    }
    if(type == 'minus'){//减
        return (parseInt(a) - parseInt(b))/ Math.pow(10, Math.max(alen,blen))
    }
    if(type == 'multiply'){//乘
        return (parseInt(a) * parseInt(b))/ Math.pow(Math.pow(10, Math.max(alen,blen)),2)
    }
    if(type == 'divede'){//除
        return parseInt(a) / parseInt(b)
    }
    //......其他情况
    return 0
}

你可能感兴趣的:(【基础知识】两个正数相加)