Autor Tema: (CU01156E) Convertir String a Number JavaScript. Redondear. toFixed, isNaN, toPr  (Leído 2248 veces)

Salvadoruve2

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 69
  • Good night Seattle
    • Ver Perfil
Hola aquí dejo mi solución para el ejercicio planteado en dicho apartado.

Es la segunda vez que hago el ejercicio, puesto que he retomado hace poco los cursos de aprendeaprogramar, y es curioso ver las diferentes formas de resolverlo antes y despues.

Espero que esté correcto. Gracias

Citar
Crea un script donde:

a) Se pida al usuario que introduzca un número superior a 10000000 y se muestre por pantalla ese número con tres dígitos significativos. Si el número introducido no cumple la condición, se volverá a solicitar que se introduzca.

b) Se pida al usuario que introzca un número con 4 decimales y se muestre por pantalla ese número redondeado a dos decimales. Si el número introducido no cumple la condición, se volverá a solicitar que se introduzca (para ello habrá que analizar que la cadena introducida cuente con cuatro dígitos después del carácter de punto decimal).

c) Se pida al usuario que introduzca una frase que comience por un número que puede ser entero o decimal. Para dicha frase, se devolverá el número entero que se pueda extraer, y el número decimal que se pueda extraer. Deberá analizarse la entrada con una expresión regular, de modo que si no cumple la condición, se vuelva a solicitar la introducción de la frase.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Numerología</title>
<meta charset="utf-8">
<style type="text/css"></style>
<script type="text/javascript">
window.onload = function() {
var numeroUsuario = prompt ('Por favor introduzca un número igual o mayor a 10000000');

if (Number(numeroUsuario) && numeroUsuario.length >= 8) {
var numeroUsuario = Number (numeroUsuario);
var precision = (numeroUsuario).toPrecision(3);
alert('El número con tres dígitos significativos es: ' + precision);

}else{
alert('Ha cometido un error, asegúrese que el numero introducido cumple con los requisitos de la alerta');
window.location.reload();
}


var numeroUsuario2 = prompt ('Por favor introduzca ahora un número con cuatro decimales, ejm: "4.1416"');

var expReg = /\d+\.\d{4,4}$/;

if (expReg.test(numeroUsuario2)) {
numeroUsuario2 = Number (numeroUsuario2);
alert('El número redondeado a dos decimales es: ' +numeroUsuario2.toFixed(2));
}else{
do { alert('Ha comoetido algún error, asegúrese que ofrece la información requerida en la alerta y que ela separación de los decimales es el símbolo "."');
var numeroUsuario2 = prompt ('Por favor introduzca ahora un número con cuatro decimales, ejm: "4.1416"');
  }
while (expReg.test(numeroUsuario2) == false);

numeroUsuario2 = Number (numeroUsuario2);

alert('El número redondeado a dos decimales es: ' + numeroUsuario2.toFixed(2));
}


var fraseUsuario =  prompt ('Por favor introduzca ahora una frase que empiece por un número entero o decimal. Ejm: "25 dias tiene un mes ficticio" o "3,1416 veces te dije ayer que compraras mistol".');

var expReg2 = /^\d+\.{0,1}\d+\s*\w+/;
var expRegExtraer = /^\d+\.{0,1}\d+/;
var expRegDecimal = /\.\d+/;

if (expReg2.test(fraseUsuario)) {
var extraerNumero = Number(expRegExtraer.exec(fraseUsuario));
var numeroEntero = parseInt(extraerNumero);
var numeroDecimal = expRegDecimal.exec(extraerNumero);
alert('El primer número que podemos extraer es: ' + extraerNumero);
alert('El número entero es : ' + numeroEntero + '\nY el número decimal es: ' + numeroDecimal);
}else{
do {alert('Ha comoetido algún error, asegúrese que ofrece la información requerida en la alerta');
fraseUsuario =  prompt ('Por favor introduzca una frase que empiece por un número entero o decimal. Ejm: "25 dias tiene un mes ficticio" o "3,1416 veces te dije ayer que compraras mistol".');
}
while (expReg2.test(fraseUsuario) == false);

var extraerNumero = Number(expRegExtraer.exec(fraseUsuario));
var numeroEntero = parseInt(extraerNumero);
var numeroDecimal = expRegDecimal.exec(extraerNumero);
alert('El primer número que podemos extraer es: ' + extraerNumero);
alert('El número entero es : ' + numeroEntero + '\nY el número decimal es: ' + numeroDecimal);

}

var nodoBody = document.getElementsByTagName('body')[0];
var despedida = '<h1>Buen trabajo!! has completado con éxito el recorrido. Si quieres volver a intentalo por favor recarga la página</h1>';
nodoBody.innerHTML = despedida;

}
</script>
</head>
<body>

</body>
</html>
Dt. Crane psychiatrist

bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
En principio si introduces un numero que no cumple lo que se pide en la primera pregunta, no vuelve a preguntar otra vez el número.
Revisa un poco el código. ;)

Salvadoruve2

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 69
  • Good night Seattle
    • Ver Perfil
Ok lo reviso y lo igualo a las otras sentencias para volver a preguntar el número. Gracias
« Última modificación: 23 de Diciembre 2016, 20:36 por Ogramar »
Dt. Crane psychiatrist

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".