É possível usar os valores dos números separados com vírgula? Pois fiz o teste e o cálculo retorna NaN.
É possível usar os valores dos números separados com vírgula? Pois fiz o teste e o cálculo retorna NaN.
Olá Diego! Em JavaScript o separador da parte fracionária de um número é o ponto (.). Não é possível a utilização com vírgula (,), pois assim o JavaScript não reconhece como número, por isso retorna NaN, que significa "Not a Number" ("Não é um número").
Sim, 5,5+8,5. Qual tipo de conta quer fazer?
Olá Victor! Como mencionei acima para o Diego essa operação com vírgulas dá erro no JavaScript, pois o mesmo não reconhece a vírgula (,) como separador, apenas o ponto (.). O correto é 5.5 + 8.5.
Obrigado André, Então é regra do JavaScript mesmo.
Victor, fiz o teste e retorna NaN.
Olá, gostaria de fazer uma observação quanto a questão da virgula. No exercício usamos o função prompt
que nos retorna a informação que o usuário digitou na tela. A informação retornada por esta função é do tipo texto, porém como utilizamos os operadores de multiplicação (*) e divisão (/), essas informações são convertidas implicitamente para números. Existem algumas funções no JavaScript que nos permitem trabalhar com textos e números, com elas poderíamos resolver essa questão.
Observação: as informações abaixo não foram apresentadas no curso, caso tenha curiosidade, você pode verificar como poderia ser feito o tratamento para a virgula, caso contrário, não veja o restante da resposta e tenha em mente que é possível manipular textos de tal modo que sejam convertidos para números (que utilizam o ponto para separar a parte fracionária, conforme o André disse).
Fiz um script simples mostrando a utilização das funções replace
e parseFloat
e do operador typeof
.
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(mensagem) {
document.write(mensagem);
pulaLinha();
}
function calculaImc(peso, altura) {
return peso / (altura * altura);
}
function converteParaNumero(texto) {
return parseFloat(texto.replace(",", ".")); // substituí virgula pelo ponto e converte para número
}
var peso = prompt("Informe seu peso");
var altura = prompt("Informe sua altura");
mostra("Tipo da variável peso: " + (typeof peso));
mostra("Tipo da variável altura: " + (typeof altura));
pulaLinha();
var pesoNumerico = converteParaNumero(peso);
var alturaNumerico = converteParaNumero(altura);
var imc = calculaImc(pesoNumerico, alturaNumerico);
mostra("Tipo da variável pesoNumerico: " + (typeof pesoNumerico));
mostra("Tipo da variável alturaNumerico: " + (typeof alturaNumerico));
pulaLinha();
mostra("IMC calculado: " + imc);
</script>
Documentação do replace, parseFloat, e typeof (lá no final da página)
Olá Mateus,
Obrigado pela dica!