Maison > interface Web > js tutoriel > JavaScript implémente un grand nombre de compétences en opérations_javascript

JavaScript implémente un grand nombre de compétences en opérations_javascript

WBOY
Libérer: 2016-05-16 16:30:23
original
2130 Les gens l'ont consulté

Pour les nombres très grands ou très petits, les valeurs à virgule flottante peuvent être représentées en notation scientifique. En notation scientifique, vous pouvez exprimer un nombre sous la forme d'un nombre plus e/E, suivi d'un multiple de 10, tel que :

Copier le code Le code est le suivant :

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

Pour effectuer l'addition et la soustraction de nombres particulièrement grands, vous pouvez utiliser la notation scientifique sous forme de chaîne, telle que :

Copier le code Le code est le suivant :

// Seuls les grands entiers sont pris en compte ici, les décimales ne sont pas prises en compte function strAdd(sNum1, sNum2){
/*Ajoutez un chiffre pour enregistrer la situation où le chiffre le plus élevé est avancé d'un*/
var sNum1 = ['0', sNum1].join(''), sNum2 = ['0', sNum2].join('');
/*Ajouter 0 aux chaînes numériques courtes*/
var len1 = sNum1.length, len2 = sNum2.length,
ZeroArr = function(len){
var arr = nouveau tableau(len), i=len
Tandis que(i--){arr[i] = 0;}
Retourner
};
si(len1 > len2){
var arrTemp = zeroArr(len1 - len2); arrTemp.push(sNum2),
sNum2 = arrTemp.join('');
}
sinon if(len2 > len1){
var arrTemp = zeroArr(len2 - len1); arrTemp.push(sNum1),
sNum1 = arrTemp.join('');
}
/*Convertissez la chaîne en tableau et ajoutez les chiffres correspondants*/
var arr1 = sNum1.split(''), arr2 = sNum2.split('');
var arrAddRes = new Array(arr1.length), i=arr1.length
var andone = 0, // S'il faut en ajouter un au bit faible cur1, cur2, curAdd
pendant que(i--){
Cur1 = arr1[i], cur2 = arr2[i]; CurAdd = cur1 cur2 et un
Si (10 > curAdd)
arrAddRes[i] = curAdd,
etun = 0;
d'autre
arrAddRes[i] = curAdd.toString().slice(1,2),
etun = 1;
}
If(!andone){ // Faut-il en ajouter un à la fin, sinon intercepter le précédent 0 arrAddRes.splice(0,1); }
/*Si les 19 premiers chiffres du tableau sont interceptés, utilisez la notation scientifique pour exprimer le résultat*/
var keeplen = 19; // Les décimales JS ne conservent que 18 chiffres après la virgule var eAfter = arrAddRes.length - 1; // La partie multiple après e var eBefore, eBeforeStr = ''; > if(keeplen eBeforeStr = [arrAddRes[0], '.', arrAddRes.slice(1, keeplen).join('')].join('');
d'autre
eBeforeStr = [arrAddRes[0], '.', arrAddRes.slice(1).join('')].join('');
eAvant = eAvantStr;
Renvoie [Number(arrAddRes.join('')), eBefore, eAfter]
}
strAdd('1234567890', '9876543210'); // ->


Le code est comme ci-dessus, est-ce très simple ?
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal