Olá, No pop-up quando vou informar a minha altura com o uso da virgula ex: altura 1,71 o resultado do IMC é NAN, mas quando utilizo o ponto ex: altura 1.71 da certo, Por que isso ocorre ?
Olá, No pop-up quando vou informar a minha altura com o uso da virgula ex: altura 1,71 o resultado do IMC é NAN, mas quando utilizo o ponto ex: altura 1.71 da certo, Por que isso ocorre ?
Olá Jucival. O separador decimal que o Javascript aceita é o ponto.
Oi Jucivaldo, isso é uma característica da própria sintaxe do JavaScript. A virgula, ela é reconhecido pelo programa como um caractere que separa informações. O ponto, no sistema métrico americano, ele funciona como o marcador de casas decimais. Aqui no brasil, e acredito que em alguns outros países latinos, usamos a vírgula como divisor das casas decimais. Isso é só uma questão de sintaxe. Sua opção, é que no prompt, informe ao usuário que ele deve usar o ponto em vez da virgula.
Agora, se não me engano, existe uma forma de retornar o valor do prompt com virgula e o programa transforma em ponto. Mas você teria que testar: Com a função parseFloat( ). Você escreve assim:
var altura = parseFloat(prompt ("Qual a sua altura?"));
Assim, ele retorna uma variável do tipo Float, similar a um int. Testa, se funcionar, me avisa...
Espero ter ajudado.
Boa noite, tive a mesma dúvida, grato pelas explicações.
Germanna, acabei tendo essa mesma dúvida e por conta própria fiz o teste com o parseFloat, mas infelizmente não deu certo. O IMC que deveria dar em torno de 28 ele retorna 81, caso o usuário entre com uma altura com vírgula. Realmente necessita informar ao usuário que entra com uma informação com ponto ao invés da vírgula.
Estava com o mesmo erro, obrigada pelas explicações.
Obrigado a todos que responderam.