Foros del Web » Programando para Internet » Javascript »

"parseInt" ¿necesario?

Estas en el tema de "parseInt" ¿necesario? en el foro de Javascript en Foros del Web. Buenas. He estado mirando algunos ejemplos de códigos javascript para ir aprendiendo y he encontrado el siguiente: Código: <script> var nota1,nota2,nota3; nota1=prompt("Ingresa la primera nota:", ...
  #1 (permalink)  
Antiguo 01/08/2011, 17:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 30
Antigüedad: 14 años, 6 meses
Puntos: 0
"parseInt" ¿necesario?

Buenas. He estado mirando algunos ejemplos de códigos javascript para ir aprendiendo y he encontrado el siguiente:

Código:
<script>
		   
		   var nota1,nota2,nota3;
		   
		   nota1=prompt("Ingresa la primera nota:", "Nota");
		   nota2=prompt("Ingresa la segunda nota:", "Nota");
		   nota3=prompt("Ingresa la tercera ntoa:", "Nota");
		   
		   nota1=parseInt(nota1);
		   nota2=parseInt(nota2);
		   nota3=parseInt(nota3);
		   
		   var media;
		   media=(nota1+nota2+nota3)/3;
		   
		   if (media>=8) {
		      alert("Excelente");
		      }
		      else {
                if (media>=5) {
                    alert("Aprobado");
                }
                else {
                    alert("Suspendido!");
                }	
              }				
         		
		</script>
Después de introducir las notas, con el parseInt se convierten esas cadenas en enteros. ¿Pasa algo si no lo pongo? Porque según veo el resultado es el mismo. Si tuviese una cadena "10", entonces sí que me serviría pasarla a entero para trabajar con el número, pero en este caso o introduces un valor númerico o el script no funcionará correctamente.

Espero haberme explicado, un saludo :)
  #2 (permalink)  
Antiguo 01/08/2011, 17:52
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: "parseInt" ¿necesario?

Es que prompt devuelve un string, y no es lo mismo
Código:
"2" + "3"; // "23"
que
Código:
2 + 3; // 5
Por eso se necesita parseInt/Float.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 01/08/2011, 17:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 30
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: "parseInt" ¿necesario?

Acabo de hacer lo mismo haciendo que me imprimiese la suma de nota1+nota2 antes de que las convirtiese a enteros y ya veo que no es lo mismo.

Fallo mío. Gracias :)
  #4 (permalink)  
Antiguo 02/08/2011, 01:46
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 9 meses
Puntos: 5
Respuesta: "parseInt" ¿necesario?

otro detalle, si no le indicas que es base 10 por defecto el parseInt te detecta que es base 8, así que utiliza parseInt( numero, 10)

prueba poner como nota un 8
  #5 (permalink)  
Antiguo 02/08/2011, 07:25
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: "parseInt" ¿necesario?

Cita:
Iniciado por occiso
otro detalle, si no le indicas que es base 10 por defecto el parseInt te detecta que es base 8, así que utiliza parseInt( numero, 10)

prueba poner como nota un 8
¿Seguro? Usa por defecto la base octal cuando la cadena empieza por "0":
Código:
parseInt('010'); // 8
y entonces hay que forzar la base 10
Código:
parseInt('010', 10); // 10
Si no es así, la que usa normalmente es la base 10.
Saludos.
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 02/08/2011, 10:03
 
Fecha de Ingreso: mayo-2010
Mensajes: 30
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: "parseInt" ¿necesario?

Gracias por el detalle.

Sea como sea es conveniente indicar que tipo de base quieres usar, así no habrán sorpresas después, ¿no?

Última edición por Alecs7k; 02/08/2011 a las 11:21
  #7 (permalink)  
Antiguo 02/08/2011, 12:32
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: "parseInt" ¿necesario?

En este caso, sí.
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:23.