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

Todo imc = 0

Estou com um problema, na qual quando eu adiciono o .toFixed(2) todos os imcs das pessoas se transfromam em 0. Já vi e revi as duas últimas aulas diversas vezes, mas eu não vi onde estou errando. O meu codigo está como foi mostrado no vídeo do professor. Pergunte o que quiser sobre o meu código. Aqui está uma imagem do meu código atual e que está com esse erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Oi Guilherme!

A função .toFixed(2) só pode ser chamada em um número e retorna uma string que representa o número com a quantidade de casas decimais informadas como parâmetro.

Como a função calculaImc() já executa o comando imc.toFixed(2), o que é retornado já é uma string na forma que queremos. Sendo assim, não é necessário chamar o .toFixed(2) em outras partes do código, como na linha tdImc.textContent = imc.toFixed(2).

Na verdade, esse comando dá um erro pois, como neste caso o imc é uma string e não um número, o programa acaba retornando 0.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeNo código acima, adicionei um try-catch para verificar se algo estava errado com o .toFixed(2) no seu código e no console do chrome essa foi a mensagem:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como dito anteriormente, como calculaImc retorna uma string, chamar .toFixed() no imc resulta em um erro.

Espero ter ajudado! Se tiver mais alguma dúvida pode postar aqui! :)

solução!

Boa noite, Eduardo Tioma

Antes de tudo devo pedir minhas desculpas por demorar em te responder, segundamente agradeço pela resposta e por último devo avisar que eu consegui arrumar esse código, no final de contas eu apenas estava me esquecendo de adicionar o appendChild() para o imc. Novamente agradeço pelo comentário.