Foros del Web » Programando para Internet » Javascript »

Ayuda, problema con funcion. (Nivel principiante)

Estas en el tema de Ayuda, problema con funcion. (Nivel principiante) en el foro de Javascript en Foros del Web. Bueno, primero queiro darles las gracias de antemano si alguien me puede ayudar. Ahora os explicaré el problema. Este es el codigo de la función ...
  #1 (permalink)  
Antiguo 07/11/2010, 05:59
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 14 años
Puntos: 0
Pregunta Ayuda, problema con funcion. (Nivel principiante)

Bueno, primero queiro darles las gracias de antemano si alguien me puede ayudar.
Ahora os explicaré el problema.
Este es el codigo de la función
Cita:
function mediaComprobar(){
var nota1 = document.media.nota1.value
var nota2 = document.media.nota2.value
var nota3 = document.media.nota3.value
var nota4 = document.media.nota4.value
var result = (nota1 + nota2 + nota3 + nota4) / 4
document.media.resultado.value = result
}
No se porque el var result en vez de symar nota1,nota2 etc, los concatena.
Pongo un ejemplo. Imaginen.
nota1 = 2
nota2 = 2
nota3 = 3
nota4 = 2

Eso el navegador en vez de representarlo como 9 lo representa como 2232
Espero que alguien me pueda ayudar. Gracias de antemano y perdonen por la ignorancia pero estoy empezando con esto.
  #2 (permalink)  
Antiguo 07/11/2010, 06:24
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Ayuda, problema con funcion. (Nivel principiante)

No te preocupes, yo tuve exactamente el mismo problema que tú cuando empecé. Si te fijas, cuando le das un value a un input por ejemplo, lo pones entre comillas (value='lo que sea'). En JS, para concatenar dos cadenas o strings se usa el operador más. Es decir, si yo tengo 'Hola ' y 'mundo' obtendré 'Hola mundo'. Entonces, al recibir el value de un elemento, este viene en formato string, y JS es un lenguaje que tiende a modificar el tipo de variable de las variables para usarlas (ej: 0 (número) o '' (string) se puede evaluar a false (boolean)), pero aquí como todas son un string no tienen ninguna manera de saber que quieres sumarlo en vez de concatenarlo. La solución es pasarlo los strings a números con parseInt() o parseFloat(). parseInt() devuelve un número entero, mientras que parseFloat() lo devuelve con coma flotante, así que si vas a tener notas con decimales usa parseFloat().
Espero haberte ayudado y que lo hayas entendido.
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 07/11/2010, 06:59
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda, problema con funcion. (Nivel principiante)

Muchas gracias.
Lo explicaste reaqlmente bien, ya lo he probado y me ha funcionado ^^
Saludos

Etiquetas: funcion, nivel, principiante
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 00:58.