云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

JS大额数字相加(js实现大数相加)

jxf315 2025-07-23 15:40:16 教程文章 2 ℃

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

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%10 + sum;
    }
    if(f == 1){
        sum = "1" + sum;
    }
    return sum;
}

Tags:

最近发表
标签列表