6
respostas

Não aparece os números

Porque quando uso a opção prompt e vou digitar o número aparece "NaN"?

6 respostas

Oi Everson!

Poste o trecho do código que isso acontece. Só vendo o código para podermos dizer algo a respeito.

No aguardo!

Pode ser um erro no código mas de qualquer forma tente digitar a altura com ' . ' e não com ' , '.

Estava com o mesmo erro, porque estava digitando a altura com vírgula (1,77) quando o certo é usar o ponto (1.77).

O interessante é publicar o código para analisar melhor! Mas sua dica foi pertinente Pedro!!

Olá Everson, consulte aqui no fórum do curso no tópico "problemas com a função prompt" postada no dia 19/02 pelo usuário Artur. Lá também há demostração da solução bem legal para a sua dúvida .

Porém professor, fiquei com outra dúvida quando usamos a função prompt que recebe uma string como parâmetro. Se porventura , um usuário só venha teclar enter, ou clicar no botão OK, vai exibindo todas msg no pop-up até ocorrer o informativo de "Nan".

Agora haveria possibilidade de quando exibir um pop-up, somente aceitar o próximo passo, mediante a inserção de algum dado como caractere ou número pelo usuário?

Em que na lacuna não ficasse vazia no seu preenchimento para usabilidade da função, pois senão, o pop-up diminuiria a sua utilidade, por exemplo, no preenchimento de formulário de quadro de saúde - se foste este o caso para dinamizar o resultado. Agradeço pela ajuda.

Olá! Uma solução é você criar uma função especializada para capturar a entrada do usuário. Enquanto o que ele digitou não seja um número, você pergunta novamente. Nada a impede de criar outra função especializada apenas para capturar texto.

Você pode usar um while, caso já tenha chegado nessa aula:

<meta charset="UTF-8">

<script>

    function leNumero(msg) {
        var leitura = NaN;
        while (isNaN(leitura) == true) {
            leitura = parseFloat(prompt(msg));
        }
        return leitura;
    }

    function leTexto(msg) {
        var leitura = '';
        while (leitura == '') {
            leitura = prompt(msg);
            // remove os espaços, caso o usuário tenha digitado
            // só espaços 
            leitura = leitura.trim();
        }
        return leitura;
    }

    let numero = leNumero('Digite um número inteiro');
    alert(numero);
    let texto = leTexto('Digite um texto');
    alert(texto);
</script>

Eu poderia ter escrito um código mais enxuto, mas para essa etapa do curso ele é o mais fácil de ler.

Sucesso e bom estudo!

Olá professor Flavio,

Agradecida pela orientação. Ainda não cheguei na aula de funcionalidade do while. Vou testar aqui na descrição do código! Um abraço!