ホームページ > 記事 > ウェブフロントエンド > JavaScript の楽しい質問: 大きな整数文字列の追加
多くの言語は、2 つの大きな整数文字列を追加するためのネイティブ サポートを提供します。
たとえば、Java は BigInteger クラスを提供しますが、JS はこの側面をサポートしていないため、実装するには自分自身に依存する必要があります。
次の文字列加算関数は 2 つの文字列パラメータを受け取り、加算後の結果を文字列形式で返します。
主なアイデアは、少しずつ追加して実行することです。実装する際に考慮すべき詳細はまだたくさんあります。
function sumStrings(a,b) { //通过补零让a和b对齐 //若a比b短,则对a补零 while(a.length < b.length){ a = "0" + a; } //若b比a短,则对b补零 while(b.length < a.length){ b = "0" + b; } //是否有进位 var addOne = 0; //结果数组 var result = []; //从个位开始相加 for(var i=a.length-1;i>=0;i--){ var c1 = a.charAt(i) - 0; var c2 = b.charAt(i) - 0; var sum = c1 + c2 + addOne; //若数字相加大于9,则进位 if(sum > 9){ result.unshift(sum - 10); addOne = 1; } else{ result.unshift(sum); addOne = 0; } } //应付下面的情况: //"99" + "11" => "110" //它最后仍然要进位 if(addOne){ result.unshift(addOne); } //应付如下的情况 //"01" + "01" => "2" //而不是"02",所以移除第一位的"0" if(!result[0]){ result.splice(0,1); } return result.join(""); }
上記は、大きな整数文字列の追加に関する楽しい JavaScript の質問です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。