Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Calculo IMC - Converter prompt em decimal

não estou conseguindo converter a altura em decimal para calcular!

let peso = parseFloat(prompt('Informe seu peso!')); let altura = Number.parseFloat(prompt('Informe sua altura!')); let imc = calcularIMC(peso,altura); alert(imc)

function calcularIMC(peso, altura){

return peso/(altura * altura)

}

3 respostas

Parece que você está enfrentando dificuldades na conversão de altura para o formato decimal. No JavaScript, ao utilizar parseFloat ou Number.parseFloat, a entrada do usuário já é convertida para um número decimal. Portanto, não é necessário realizar a conversão da altura. No entanto, a função calcularIMC está correta para calcular o Índice de Massa Corporal (IMC).

Aqui está uma versão revisada do seu código:

let peso = parseFloat(prompt('Informe seu peso:'));
let altura = parseFloat(prompt('Informe sua altura:'));
let imc = calcularIMC(peso, altura);
alert(`Seu IMC é: ${imc.toFixed(2)}`);

function calcularIMC(peso, altura) {
    return peso / (altura * altura);
}

Nesta versão, usei parseFloat para converter tanto o peso quanto a altura para números decimais. Além disso, utilizei toFixed(2) para limitar o número de casas decimais no resultado do IMC a duas. Isso é opcional e pode ser ajustado de acordo com suas preferências.

Boa noite Carlos! mesmo com as alterações continuei sem conseguir converter o prompt em decimal, quando entro com um valor fracionado na altura ele utiliza o valor inteiro.

resolvi desta forma:

let peso = parseFloat(prompt('Informe seu peso(Kg):')); let altura = parseFloat(prompt('Informe sua altura (cm):')); let imc = calcularIMC(peso, altura); alert(Seu IMC é: ${imc.toFixed(2)});

function calcularIMC(peso, altura) { letalturaM = altura / 100 return peso / (letalturaM * letalturaM); }

solução!

Ainda não sei se é a melhor forma mas consegui resolver assim;

Estou fazendo um replace do valor recebido em altura, através do prompt onde substituo a "," pelo "." e em seguida faço a conversão para número.

let peso = Number.parseFloat(prompt('Informe seu peso(Kg):')); let altura = Number.parseFloat(prompt('Informe sua altura (cm):').replace(',', '.')); let imc = calcularIMC(peso, altura); alert(Seu IMC é: ${imc.toFixed(2)});

function calcularIMC(peso, altura) { return peso / (letaltura * letaltura); }