1
resposta

[Dúvida] {DÚVIDA} - NUMEROS DECIMAIS OU OUTROS CARACTERES...

// Soma de números Inteiros

function somaDeInteiros() {
    let a = parseInt(prompt('Indique o primeiro número da soma')); 
    let b = parseInt(prompt('Indique o segundo número da soma')); 
    let soma = a + b; 
    alert('A soma dos números é ' + soma);
}

//fiz desta forma o ultimo exercicio, no entanto fiquei com dúvida de como proceder se o usuário digitasse números decimais tipo 0,5 ou digitasse qualquer outro carctere que não número. e outra coisa percebi que minha resposta concatena strings... e utlizei uma nomenclatura um pouco mais simples esta errado?? desde ja obrigado pela atenção.

1 resposta

Olá Glaucio bom dia!

O parseInt nesse caso vai garantir que retorne um número do prompt, mas ainda não resolve o problema, caso o usuario não digite um número vai retornar um NaN. Alem disso o parseInt não vai arredondar caso seja um número de ponto flutuante.

Você pode usar o Math.floor para retornar sempre um número inteiro no resultado e pode usar um if pra validar se o usuario realmente digitou um número no prompt.

exemplo

function somaDeInteiros() {
    let a = parseInt(prompt('Indique o primeiro número da soma')); 
    let b = parseInt(prompt('Indique o segundo número da soma')); 
    
    // verificando se alguma das variaveis é NaN, caso nenhuma seja NaN efetua a soma
    if (!isNaN(a) && !isNaN(b)) {
         let soma = a + b;
         
         // usando o Math.floor para arredondar o resultado e garantir que será um número inteiro
         let resultadoArredondado = Math.floor(soma)
        alert('A soma dos números é ' + resultadoArredondado);
    // caso alguma variavel não  seja um número exibe um erro e chama novamente a função para q o usuario possa digitar os números
    } else { 
        alert("Erro!,  números digitados invalidos, por favor digite números validos)
        somaDeInteiros()
    }
 
}