Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

El input me graba 71 en vez de 1.71

Al hacer el programa me quita el numero y punto en la altura, haciendo que calcule mal.

<!DOCTYPE html>
    <meta charset="utf-8">
<h1> Programa para calcular el indice de masa corporal</h1>
    <script>
        function saltarlinea(){
            document.write("<br>");
            document.write("<br>");
            document.write("<br>");
        }
        function imprimir(frase){
            document.write(frase);
            saltarlinea();
        }
        var pesoinformado = parseInt(prompt("Ingrese su peso"));
        var alturainformado = parseInt(prompt("Ingrese su altura"));
            function calculoIMC(peso,altura){
            return (peso / (altura * altura));

        }

        var imcnuevo = calculoIMC(pesoinformado,alturainformado);
        imprimir("El IMC es: " + imcnuevo + "."+"<hr>");
    if(imcnuevo<18.5){
    imprimir("El IMC está por debajo de lo recomendado")
    }
    if(imcnuevo>=18.5){
        if (imcnuevo<25) {
        imprimir("El IMC está dentro del intervalo normal.")
        }
    }
    if(imcnuevo>=25){
imprimir("El IMC está con sobrepeso")
        if(imcnuevo>=30){
        imprimir("El IMC considerado como obesidad")
    }
}
imprimir(pesoinformado);
imprimir(alturainformado);
    imprimir("El IMC calculado es" + pesoinformado/(alturainformado*alturainformado));    
    </script>
Obviar los condicionales que aun no debuggee.
Gracias
3 respuestas

Hola, por favor selecciona todo lo que es codigo y lo marcas con la casilla </> para que podamos ver el codigo.

@Ricardo Listo, ahora se lee.

El problema esta en que el parseInt() convierte los valores a enteros no decimales, significa que si pusiste decimales, el los redondea a su entero mas cercano. Con la propiedad parseFloat() (tambien puedes escribirlo Number.parseFloat())no tendrás problemas. espero que te sirva, si es así, por favor califica mi respuesta como la solución.

<!DOCTYPE html>
<meta charset="utf-8">
<h1> Programa para calcular el indice de masa corporal</h1>
<script>
    function saltarlinea(){
        document.write("<br><br><br>");
    }
    function imprimir(frase){
        document.write(frase);
        saltarlinea();
    }
    var pesoinformado = parseFloat(prompt("Ingrese su peso"));
    var alturainformado = parseFloat(prompt("Ingrese su altura"));
        function calculoIMC(peso,altura){
        return (peso / (altura * altura));

    }

    var imcnuevo = calculoIMC(pesoinformado,alturainformado);
    imprimir("El IMC es: " + imcnuevo + "."+"<hr>");
if(imcnuevo<18.5){
imprimir("El IMC está por debajo de lo recomendado")
}
if(imcnuevo>=18.5){
    if (imcnuevo<25) {
    imprimir("El IMC está dentro del intervalo normal.")
    }
}
if(imcnuevo>=25){
imprimir("El IMC está con sobrepeso")
    if(imcnuevo>=30){
    imprimir("El IMC considerado como obesidad")
}
}
imprimir(pesoinformado);
imprimir(alturainformado);
imprimir("El IMC calculado es" + pesoinformado/(alturainformado*alturainformado));    
</script>