Para números muito grandes ou muito pequenos, a notação científica pode ser usada para representar valores de ponto flutuante. Usando a notação científica, um número pode ser representado como um número mais E/E, seguido por um múltiplo de 10, como:
A cópia do código é a seguinte:
var num1 = 3,125e7; // 31250000 var num2 = 3e-17; // 0,00000000000000000000000000000000000000000000
Para adicionar ou subtrair números particularmente grandes, você pode usar métodos de notação científica de string + para executar o método, como:
A cópia do código é a seguinte:
// Considere apenas números inteiros grandes e não considere a função decimal (snum1, snum2) {
/*Adicione um dígito para gravar o caso em que o dígito mais alto é ainda mais*/
var snum1 = ['0', snum1] .Join (''), snum2 = ['0', snum2] .Join ('');
/*Adicione 0 a cordas numéricas curtas*/
var len1 = snum1.length, len2 = snum2.Length,
zeroarr = function (len) {
var arr = nova matriz (len), i = len;
while (i-) {arr [i] = 0;}
retornar arr;
};
if (len1> len2) {
var Arrtemp = Zeroarr (Len1 - Len2);
Arrtemp.push (snum2),
snum2 = arrtemp.join ('');
}
else if (len2> len1) {
var ArrTemp = Zeroarr (Len2 - Len1);
Arrtemp.push (snum1),
snum1 = arrtemp.join ('');
}
/*Converta strings em matrizes e adicione -as com dígitos correspondentes*/
var Arr1 = snum1.split (''), arr2 = snum2.split ('');
var ArRADDRES = nova matriz (arr1.length), i = arr1.length;
var ene = 0, // se a adição de peça inferior é CUR1, CUR2, CURADD;
enquanto (i-) {
cur1 = +arr1 [i], cur2 = +ar2 [i];
curadd = cur1+cur2+ene;
se (10> curadd)
Arraddres [i] = Curadd,
Andone = 0;
outro
Arraddres [i] = +Curadd.toString (). Slice (1,2),
Andone = 1;
}
if (! Andone) {// finalmente, seja um passo adiante, intercepte o 0 araddres.splice anterior (0,1);
}
/*Se houver os 19 primeiros dígitos na matriz, use a notação científica para representar o resultado*/
var keeplen = 19; // O decimal de JS mantém apenas os 18 dígitos após o ponto decimal var eafter = arraddres.length - 1; // a parte múltipla após e var ebe antes, ebeforest = ''; // a parte decimal antes de e
if (keeplen <arraddres.length)
EBEFOREST = [arraddres [0], '.
outro
EBEFOREST = [arraddres [0], '.
eBefore = +EBeForest;
return [número (araddres.join ('')), ebe antes, eafter];
}
Stradd ('1234567890', '9876543210'); // -> [11111111100, 1.11111111, 9]
O código é como acima, não é muito simples?