Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
Cómo convertir una cadena larga (más de 16 dígitos) en números

esta es una función que simplemente incrementa un número en la matriz, pero el problema que interacciono cuando pongo muchos números en la matriz (más de 16 dígitos) cuando uso parseInt() acaba de devolver 16 números correctos y más que eso es cero

 6145390195186705000

y esperado

 6145390195186705543

la función

 var plusOne = function(digits) { var numbersInString = digits.join(''); var theNumbers = parseInt(numbersInString); var theNumbersPlusOne = theNumbers + 1; var result = String(theNumbersPlusOne).split("").map((theNumbersPlusOne) => { return Number(theNumbersPlusOne); }); return result; }; console.log(plusOne([6,1,4,5,3,9,0,1,9,5,1,8,6,7,0,5,5,4,3]));

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede usar BigInt para manejar este problema.

 var plusOne = function(digits) { var numbersInString = digits.join(''); var theNumbers = BigInt(numbersInString); var theNumbersPlusOne = theNumbers + BigInt(1); var result = theNumbersPlusOne.toString().split("").map((theNumbersPlusOne) => { return Number(theNumbersPlusOne); }); return result; }; console.log(plusOne([6,1,4,5,3,9,0,1,9,5,1,8,6,7,0,5,5,4,3]));

about 4 years ago · Juan Pablo Isaza Relatório

0

Simplemente ampliando mi comentario anterior con otra solución ...

Ha superado el valor entero seguro máximo. ( Number.MAX_SAFE_INTEGER , que es igual a 9007199254740991 ). Los números más grandes que este no son compatibles con los tipos de enteros estándar en javascript, o más bien no hay suficiente precisión para representarlos . Cualquier cosa mayor que esto se representa en notación científica y los dígitos adicionales se truncan y se representan solo como ceros.

Dicho esto, ni siquiera necesita convertir la matriz en una cadena en un número entero solo para incrementarla. Simplemente puede incrementar los dígitos individuales en la matriz, comenzando por el final y avanzando hacia adelante para "llevar el 1", por así decirlo.

 var plusOne = function(digits) { for(let i = digits.length - 1; i > -1; i--) { if(digits[i] == 9) { digits[i] = 0; if(i == 0) digits = [1].concat(digits); } else { digits[i]++; break; } } return digits; }; console.log(plusOne([6,1,4,5,3,9,0,1,9,5,1,8,6,7,0,5,5,4,3]));

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda