Foros del Web » Programando para Internet » Javascript »

Evitar Nan

Estas en el tema de Evitar Nan en el foro de Javascript en Foros del Web. Hola tengo la siguiente función para hacer una suma Código HTML: <script> function sumar() { var n1 = parseFloat(document.form1.p1.value); var n2 = parseFloat(document.form1.p2.value); var n3 ...
  #1 (permalink)  
Antiguo 29/08/2012, 18:03
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Evitar Nan

Hola tengo la siguiente función para hacer una suma
Código HTML:
<script> 
function sumar() { 
var n1 = parseFloat(document.form1.p1.value); 
var n2 = parseFloat(document.form1.p2.value); 
var n3 = parseFloat(document.form1.p3.value); 

document.form1.total.value=(n1+n2+n3); 
} 
</script> 
La cual funciona pero al no tener nada mis inputs me manda en total NAN
he leído que significa que no es numero (porque al estar mis input vacios no puede realizar la suma)
Ahora bien como podría solucionar esto... sin necesidad de poner 0 en la propiedad value de mis inputs

Gracias de antemano
  #2 (permalink)  
Antiguo 29/08/2012, 18:13
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Evitar Nan

entonces para esto debes validar de esta manera

Código Javascript:
Ver original
  1. <script>
  2. function sumar() {
  3. var n1 = isNaN(document.form1.p1.value) ? 0 : parseFloat(document.form1.p1.value);
  4. var n2 = isNaN(document.form1.p2.value) ? 0 : parseFloat(document.form1.p2.value);
  5. var n3 = isNaN(document.form1.p3.value) ? 0 : parseFloat(document.form1.p3.value);
  6.  
  7. document.form1.total.value=(n1+n2+n3);
  8. }
  9. </script>
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 29/08/2012, 18:28
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Evitar Nan

Cita:
Iniciado por Dradi7 Ver Mensaje
entonces para esto debes validar de esta manera

Código Javascript:
Ver original
  1. <script>
  2. function sumar() {
  3. var n1 = isNaN(document.form1.p1.value) ? 0 : parseFloat(document.form1.p1.value);
  4. var n2 = isNaN(document.form1.p2.value) ? 0 : parseFloat(document.form1.p2.value);
  5. var n3 = isNaN(document.form1.p3.value) ? 0 : parseFloat(document.form1.p3.value);
  6.  
  7. document.form1.total.value=(n1+n2+n3);
  8. }
  9. </script>
Gracias lo he probado pero sigue saliendo NAN

Etiquetas: funcion, input, nan
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 10:14.