Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/01/2010, 09:16
Avatar de Tecna
Tecna
 
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: ayuda con un calculo porfavor

Buenas,

para poder hacer cálculos con el texto que introduzcas deberías asegurarte primero que efectivamente los datos son numéricos para ello puedes simplemente restar 0, o usar la constructora Number( ) con la cadena como argumento (solo para numeros en base 10) , o usar las funciones parseInt o parseFloat (en cualquier base y para números enteros o decimales).
La función isNaN también se usa para comprobar si un dato es un valor numérico legal y devuelve true si el valor analizado es o se puede convertir en el valor especial NaN y false en el resto de casos, por lo tanto cuando usas como condición del if : " if (isNaN(subt)) " ese bloque sólo se ejecutará cuando subt sea NaN y en el resto de casos (null, undefined, cadenas, números, objetos) se ejecutaría el else que no es lo que estás buscando. Sería mejor poner como condición lo que estás buscando y que se ha de hacer mas a menudo en el if y la excepción en el else.
El código según lo pones queda un poco confuso porque no se sabe muy bien cada else a que if pertenece. La norma dice que una cláusula else forma parte de la instrucción if mas cercana así que es probable que tampoco esté haciendo lo que esperas que haga. Y quedaría mas claro si indentaras el código y en lugar de usar else usaras else if para anidar varios if