大额数字相加

2023-05-24 15:55:09 浏览数 (1)

接受两个字符串,如果接受的是数字,需要将数字转为字符串,但有一个点需要注意,转换过程中,可能会带有e,如1.12e 21,即1.12 * 21个0,需要将1.12 * 2个0,然后padStart(21 - 2个0)。

代码语言:javascript复制
let a = "9007199254740991";
let b = "1234567899999999999";
function add(a ,b){
    //取两个数字的最大长度   
    let maxLength = Math.max(a.length, b.length);
    //用0去补齐长度   
    a = a.padStart(maxLength , 0);//"0009007199254740991"   
    b = b.padStart(maxLength , 0);//"1234567899999999999"   
    //定义加法过程中需要用到的变量         
    let t = 0;
    let f = 0;   //"进位"   
    let sum = "";
    for(let i=maxLength-1 ; i>=0 ; i--){
        t = parseInt(a[i])   parseInt(b[i])   f;
        f = Math.floor(t/10);
        sum = t   sum;
    }
    if(f == 1){
        sum = "1"   sum;
    }
    return sum;
}

0 人点赞