Heim > Web-Frontend > js-Tutorial > JavaScript implementiert eine große Anzahl von Operationen_Javascript-Fähigkeiten

JavaScript implementiert eine große Anzahl von Operationen_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 16:30:23
Original
2138 Leute haben es durchsucht

Für sehr große oder sehr kleine Zahlen können Gleitkommawerte in wissenschaftlicher Notation dargestellt werden. In wissenschaftlicher Schreibweise kann eine Zahl als Zahl plus e/E gefolgt von einem Vielfachen von 10 ausgedrückt werden, wie zum Beispiel:

Code kopieren Der Code lautet wie folgt:

var num1 = 3.125e7; // 31250000 var num2 = 3e-17; // 0.0000000000000003

Um die Addition und Subtraktion besonders großer Zahlen durchzuführen, können Sie die wissenschaftliche String-Notation verwenden, wie zum Beispiel:

Code kopieren Der Code lautet wie folgt:

// Hier werden nur große Ganzzahlen berücksichtigt, Dezimalzahlen werden nicht berücksichtigt function strAdd(sNum1, sNum2){
/*Eine Ziffer hinzufügen, um die Situation aufzuzeichnen, in der die höchste Ziffer um eins erhöht wird*/
var sNum1 = ['0', sNum1].join(''), sNum2 = ['0', sNum2].join(''); /*Füge 0 zu kurzen numerischen Zeichenfolgen hinzu*/
var len1 = sNum1.length, len2 = sNum2.length,
ZeroArr = function(len){
var arr = new Array(len), i=len; While(i--){arr[i] = 0;}
Zurück arr;
};
if(len1 > len2){
var arrTemp = zeroArr(len1 - len2); arrTemp.push(sNum2),
sNum2 = arrTemp.join(''); }
sonst if(len2 > len1){
var arrTemp = zeroArr(len2 - len1); arrTemp.push(sNum1),
sNum1 = arrTemp.join(''); }
/*Konvertieren Sie die Zeichenfolge in ein Array und fügen Sie die entsprechenden Ziffern hinzu*/
var arr1 = sNum1.split(''), arr2 = sNum2.split(''); var arrAddRes = new Array(arr1.length), i=arr1.length; var andone = 0, // Ob eins zum Low-Bit hinzugefügt werden soll cur1, cur2, curAdd; while(i--){
Cur1 = arr1[i], cur2 = arr2[i]; CurAdd = cur1 cur2 andone; If(10 > curAdd)
arrAddRes[i] = curAdd,
andone = 0;
sonst
arrAddRes[i] = curAdd.toString().slice(1,2),
andone = 1;
}
If(!andone){ // Ob eins am Ende hinzugefügt werden soll, andernfalls das vorherige abfangen 0 arrAddRes.splice(0,1); }
/*Wenn die ersten 19 Ziffern des Arrays abgefangen werden, verwenden Sie die wissenschaftliche Notation, um das Ergebnis auszudrücken*/
var keeplen = 19; // JS-Dezimalstellen behalten nur 18 Ziffern nach dem Komma var eAfter = arrAddRes.length - 1; // Der Mehrfachteil nach e var eBeforeStr = ''; > if(keeplen < arrAddRes.length)
eBeforeStr = [arrAddRes[0], '.', arrAddRes.slice(1, keeplen).join('')].join(''); sonst
eBeforeStr = [arrAddRes[0], '.', arrAddRes.slice(1).join('')].join(''); eBefore = eBeforeStr; Return [Number(arrAddRes.join('')), eBefore, eAfter]; }
strAdd('1234567890', '9876543210'); // ->


Der Code ist wie oben, ist er sehr einfach?
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage