1 votos

JavaScript Sublime contar dígitos de un número introducido

Buenas, quiero que se introduzca un número íntegro de 0 a 9999 y que imprima El número X tiene Y dígitos la cosa es que en clase sale ejemplo de if (num<10) document.write ('....'); introducismo las variables: var num; lo he intentado mirando más ayuda y no consigo aclararme porque la cosa se complia y salen ejemplos de carácteres y demás, no habría una forma más simple, como un do while y un contador <!DOCTYPE html> <html> <head> <title>Java Script Exercises</title> <meta charset="utf-8"> </head> <body> <h1>Exercise 6</h1> <script type="text/javascript">

        var num;

        num=prompt('Ingrese un numero:','');
        num=parseInt(num);

        var length = ('' +num).length;
        console.log (num);

</script>

</body> </html>

esto es lo que tengo, lo había intentado con un do-while pero por alguna raz´çon me devuelve más de 300 dígitos el contador y no enteindo por qué.

<h1>Exercise 6</h1> <script type="text/javascript">

        var num;
        var num2;
        var digits=0;

            num=prompt('Ingrese un numero:','');
            num=parseInt(num);
            num2 = num;

            do {
                num2=num2/10;
                digits++;
            }
            while (num2!=0);
            document.write('El número ' +num+ ' tiene ' +digits+ ' dígitos');

</script>

0voto

aFrost Puntos 5

El problema que tienes en el do while, es que miras que el número sea distinto de 0, aunque dividas 1 / 10 es 0,1, y en la siguiente sera 0,01 , y eso es distinto de 0 por lo que el do while sigue.

Si quieres hacerlo así te recomiento que cambies el while (num2!=0); a while (num2 >= 1);, así solo seguirá el proceso si el número es mayor o igual a 1.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X