Foros del Web » Programando para Internet » Javascript »

Suma que no contempla decimales

Estas en el tema de Suma que no contempla decimales en el foro de Javascript en Foros del Web. Tengo este script que conseguí en este foro, lo que hace es sumar unas celdas y el resultado de esa suma aparece en otra ***************************************** ...
  #1 (permalink)  
Antiguo 20/07/2005, 09:03
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 10 meses
Puntos: 0
Suma que no contempla decimales

Tengo este script que conseguí en este foro, lo que hace es sumar unas celdas y el resultado de esa suma aparece en otra

*****************************************
<SCRIPT language="javascript">
function subtotal(formulario)
{
a1 = (! parseInt(formulario.precio_1.value))?0:parseInt(fo rmulario.precio_1.value);
a2 = (! parseInt(formulario.precio_2.value))?0:parseInt(fo rmulario.precio_2.value);
a3 = (! parseInt(formulario.precio_3.value))?0:parseInt(fo rmulario.precio_3.value);
a4 = (! parseInt(formulario.precio_4.value))?0:parseInt(fo rmulario.precio_4.value);
a5 = (! parseInt(formulario.precio_5.value))?0:parseInt(fo rmulario.precio_5.value);
a6 = (! parseInt(formulario.precio_6.value))?0:parseInt(fo rmulario.precio_6.value);
a7 = (! parseInt(formulario.precio_7.value))?0:parseInt(fo rmulario.precio_7.value);
a8 = (! parseInt(formulario.precio_8.value))?0:parseInt(fo rmulario.precio_8.value);
a9 = (! parseInt(formulario.precio_9.value))?0:parseInt(fo rmulario.precio_9.value);
a10 = (! parseInt(formulario.precio_10.value))?0:parseInt(f ormulario.precio_10.value);
a11 = (! parseInt(formulario.precio_11.value))?0:parseInt(f ormulario.precio_11.value);
a12 = (! parseInt(formulario.precio_12.value))?0:parseInt(f ormulario.precio_12.value);
a13 = (! parseInt(formulario.precio_13.value))?0:parseInt(f ormulario.precio_13.value);
a14 = (! parseInt(formulario.precio_14.value))?0:parseInt(f ormulario.precio_14.value);
a15 = (! parseInt(formulario.precio_15.value))?0:parseInt(f ormulario.precio_15.value);
a16 = (! parseInt(formulario.precio_16.value))?0:parseInt(f ormulario.precio_16.value);
a17 = (! parseInt(formulario.precio_17.value))?0:parseInt(f ormulario.precio_17.value);
a18 = (! parseInt(formulario.precio_18.value))?0:parseInt(f ormulario.precio_18.value);
a19 = (! parseInt(formulario.precio_19.value))?0:parseInt(f ormulario.precio_19.value);
a20 = (! parseInt(formulario.precio_20.value))?0:parseInt(f ormulario.precio_20.value);
a21 = (! parseInt(formulario.precio_21.value))?0:parseInt(f ormulario.precio_21.value);
a23 = (! parseInt(formulario.precio_23.value))?0:parseInt(f ormulario.precio_23.value);
a24 = (! parseInt(formulario.precio_24.value))?0:parseInt(f ormulario.precio_24.value);
a25 = (! parseInt(formulario.precio_25.value))?0:parseInt(f ormulario.precio_25.value);
a26 = (! parseInt(formulario.precio_26.value))?0:parseInt(f ormulario.precio_26.value);
a27 = (! parseInt(formulario.precio_27.value))?0:parseInt(f ormulario.precio_27.value);
a28 = (! parseInt(formulario.precio_28.value))?0:parseInt(f ormulario.precio_28.value);
a29 = (! parseInt(formulario.precio_29.value))?0:parseInt(f ormulario.precio_29.value);
a30 = (! parseInt(formulario.precio_30.value))?0:parseInt(f ormulario.precio_30.value);
a31 = (! parseInt(formulario.precio_31.value))?0:parseInt(f ormulario.precio_31.value);
a32 = (! parseInt(formulario.precio_32.value))?0:parseInt(f ormulario.precio_32.value);
a33 = (! parseInt(formulario.precio_33.value))?0:parseInt(f ormulario.precio_33.value);
a34 = (! parseInt(formulario.precio_34.value))?0:parseInt(f ormulario.precio_34.value);
a35 = (! parseInt(formulario.precio_35.value))?0:parseInt(f ormulario.precio_35.value);
subt = a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13+a14+a15 +a16+a17+a18+a19+a20+a21+a23+a24+a25+a26+a27+a28+a 29+a30+a31+a32+a33+a34+a35
formulario.sub.value = subt
}
</script>
<script>
************************************************** *******

en la celda que queremos sumar ponemos:
<select name="precio_2" size="1" id="precio_2" onChange="subtotal(formulario)">
************************************************** ******
Mi problema viene a que no suma decimales, y ahora con el euro, necesito que lo haga, alguien me puede ayudar. Gracias
  #2 (permalink)  
Antiguo 20/07/2005, 09:26
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años, 8 meses
Puntos: 5
en vez de utilizar ParseInt utiliza ParseFloat para que te contemple los decimales y luego aplicas la función que te pongo a continuación:

http://www.forosdelweb.com/showpost....&postcount=213

saludos
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #3 (permalink)  
Antiguo 20/07/2005, 09:38
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 10 meses
Puntos: 0
he ehcho lo que me decías y no me va, me sigue sumando enteros
  #4 (permalink)  
Antiguo 20/07/2005, 09:40
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 10 meses
Puntos: 0
si si funciona, gracias
  #5 (permalink)  
Antiguo 20/07/2005, 09:45
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años, 8 meses
Puntos: 5
ok, cool
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
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 02:11.