9
respostas

nao converte texto em numero

ola , gostaria de saber pq o parseInt nao esta convertendo o texto em numero .

obrigado

9 respostas

Olá, Carlos, poste o seu código aqui para vermos e tentarmos ajudar. Clique no botão </> e cole o código entre os dois grupos de risquinhos que aparecerá.

Consultar a documentação oficial MDN Web Docs.

Link:

PT-BR

EN-US

parseInt() - converte o valor digitado, que por padrão é lido como texto, para que seja interpretado como um número.

Segue um exemplo abaixo:


 <script>
    // parseInt() converte o valor digitado, que por padrão é lido como texto, para que seja interpretado como um número

    var idade = parseInt(prompt("Idade: ")); // caso não tivesse o parseInt, a variável idade irá receber uma string (texto)

    console.log(idade); // retorna a idade digitada pelo usuário

  </script>

Carlos, boa tarde.

Caso tenho de ajudado com as suas dúvidas, por favor finalizar o tópico como solucionado.

Um abraço.

Eduardo

Carlos, boa noite.

Por favor finalizar o tópico como solucionado caso tenha te ajudado.

Um abraço. Bons estudos.

Eduardo

Carlos, bom dia.

Por favor finalizar o tópico como solucionado caso tenha te ajudado.

Um abraço. Bons estudos.

Eduardo

Carlos, boa noite.

Caso ainda tenha alguma dúvida registrar aqui.

Por favor finalizar o tópico como solucionado caso tenha te ajudado.

Um abraço. Bons estudos.

Eduardo

Eduardo, deixe de ser inconveniente e deixe que o criador do tópico decida se o mesmo foi solucionado ou não (e quando tbm tiver a disponibilidade para isso). No mais, a sua colaboração e tbm a de todos são muito importantes e bem-vindas.

Vamos observar o código abaixo:


<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");

    }

    function mostra (frase) {

        document.write(frase);
        pulaLinha();
    }

    var vitorias = prompt("Entre com o número de vitórias.");
    var empates = prompt("Entre com o número de empates.");

    var pontos = vitorias * 3 + empates;

    mostra("Os pontos do seu time são: " + pontos);

</script>

Ao rodar esse código, ele será executado mas não vai funcionar como esperado.

Por exemplo, se o time tem 3 vitórias e 1 empate, o programa vai fazer (3x3) + 1 = 10.

Isso é o que se espera mas o programa exibe 91 como resposta.

Isso acontece porque tudo que entra dentro da função prompt é encarado como texto pelo javascript.

O pulo do gato está no fato de que o JS converte um texto para número quando ele está fazendo operação com um número. Ou seja, o JS vai fazer isso aqui:

"texto" + número = número + número,

"texto" x número = número x número

e por aí vai.

Porém, na hora de fazer a concatenação na última linha do código,

o JS não converte mais texto em número. Na última linha do código,

o número 9 continua sendo número, pois já foi convertido. Porém, o número 1 que está guardado na variável 'empates' continuará como texto, pois na concatenação o js não faz conversão de texto em número.

A concatenação de 9(número) com 1(texto) é 91!

Para corrigir isso, é preciso GARANTIR que o que entra pelo prompt será um número e não um texto.

Para fazer esse "truque de mágica", devemos usar a função do próprio JS

chamada parseInt.

Assim sendo, adicionando a função parseInt ao prompt (para converter texto em número) a linha ficaria assim:

var vitorias = parseInt(prompt("Entre com o número de vitórias."));
var empates = parseInt(prompt("Entre com o número de empates."));

Assim, teremos o código funcional:


<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");

    }

    function mostra (frase) {

        document.write(frase);
        pulaLinha();
    }

    var vitorias = parseInt(prompt("Entre com o número de vitórias."));
    var empates = parseInt(prompt("Entre com o número de empates."));

    var pontos = vitorias * 3 + empates;

    mostra("Os pontos do seu time são: " + pontos);

</script>

Bom, foi isso que eu entendi da aula. Espero ter ajudado.