Foros del Web » Programando para Internet » Javascript »

No se como sumar decimales

Estas en el tema de No se como sumar decimales en el foro de Javascript en Foros del Web. hola, quiero sumar el contenido de dos select con decimales aqui http://perso.wanadoo.es/e/eonio/suma_select.htm si le doy a sumar 1 mas 3 , 1 mas 1 o ...
  #1 (permalink)  
Antiguo 15/02/2004, 05:25
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
No se como sumar decimales

hola, quiero sumar el contenido de dos select con decimales aqui http://perso.wanadoo.es/e/eonio/suma_select.htm si le doy a sumar 1 mas 3 , 1 mas 1 o 3 mas 1 da bien el resultado pero si sumo 3 mas 3 me salen un monton de decimales

alguien me dice que estoy haciendo mal?

tambien quiero poner otro select que añada varios porcentajes ( 10 %, 20% ......) al sesultado del campo de texto y me salga la suma en otro campo de texto

Por favor si alguien me ayuda estaria muy agradecido de verdad

Un saludo
  #2 (permalink)  
Antiguo 15/02/2004, 06:09
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola ejjjque, bienvenido a los foros :

Esta función la propuso JavierB en un post que no pude encontrar...

Espero que te sirva.

Number.prototype.decimal = function(n) {
pot = Math.pow(10, parseInt(n));
return parseInt(this * pot) / pot;
}

tienes que poner n.decimal(2) para mostrar 2 decimales...

Saludos

Última edición por caricatos; 15/02/2004 a las 06:10
  #3 (permalink)  
Antiguo 15/02/2004, 07:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
he probado a ponerlo

pero no se donde ponerlo por que no rula

gracias por contestar caricatos
  #4 (permalink)  
Antiguo 15/02/2004, 09:31
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Perdona, pero no sé el nivel que tienes, y dí una respuesta "rápida" porque tenía cosas que hacer...

En el head de la página, hay que poner el script:
<script type="text/javascript">
Number.prototype.decimal = function(n) {
pot = Math.pow(10, parseInt(n));
return parseInt(this * pot) / pot;
}
</script>

y luego donde tengas que "mostrar" el resultado (numérico) tienes que usar la función...

function sumar(){
suma=parseFloat(document.form1.select1.value)+pars eFloat(document.form1.select2.value);
document.form1.textfield.value=suma.decimales(2);
}

He usado lo que se ve en la página que has propuesto. No lo he probado en este caso concreto, pero te puedo asegurar que si no me equivoqué al copiar, funciona perfectamente.
Espero que te sirva.

Saludos
  #5 (permalink)  
Antiguo 15/02/2004, 09:54
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
Mira esto http://perso.wanadoo.es/e/eonio/SUMA_select.htm me han ayudado en un chat y de momento rula... ahora lo que necesito es que al resultado de la suma de select1 y select2 le pueda incrementar un % con el select3 y la suma de todo salga en el cuadro de texto ultimo

Un saludo y gracias
  #6 (permalink)  
Antiguo 15/02/2004, 15:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Tan solo tienes que multiplicar por el valor y dividir por cien...

Viendo el código te recomiendo que en vez de poner 0, .07 y .16, le sumes 1 y directamente lo multipliques.

<select size="1" name="select3" onchange="T1.value = (textfield.value * parseFloat(this.value)).decimal(2)">
<option selected value="1">IMPUESTOS</option>
<option value="1">IVA EXENTO</option>
<option value="1.07">IMPUESTO IVA 7%</option>
<option value="1.16">IMPUESTO IVA 16%</option>
</select><input type="text" name="T1" size="20"></

Verás... lo de decimal es lo mismo que te expliqué anteriormente, pero si no lo has entendido puedes usar el otro sistema (que realmente es el mismo), y lo de multiplicar * 1 es para que sencillamente sume el porcentaje seleccionado.

Pruébalo y cuéntame si te sirve.

Saludos
  #7 (permalink)  
Antiguo 15/02/2004, 17:49
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
lo he puesto de muchas maneras y no rula

por hoy lo dejo...a ver si mañana estoy mas despierto


Un saludo
  #8 (permalink)  
Antiguo 16/02/2004, 15:54
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
Parece que me voy aproximando...

http://perso.wanadoo.es/e/eonio/SUMA_select.htm

ya me sale el resultado del 16% en el ultimo campo de texto pero sin seleccionar nada del select3


que le estara pasando al pobre miguel?

Última edición por ejjjque; 16/02/2004 a las 15:56
  #9 (permalink)  
Antiguo 16/02/2004, 18:03
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Prueba este código:

Código PHP:
<html>
 <
head>
<
title>sumar</title>
<
script language="JavaScript">
var 
suma 0;
Number.prototype.decimal = function(n) {
pot Math.pow(10parseInt(n));
return 
parseInt(this pot) / pot;
}

function 
sumar(){
suma=parseFloat(document.form1.select1.value) + parseFloat(document.form1.select2.value);
document.form1.textfield.value=suma.decimal(2);
//document.getElementById('T1').value=(document.getElementById('textfield').value)*1.16;
 
}

function 
impuestos()    {
    
document.form1.T1.value = (suma document.form1.select3.value).decimal(2);
}
</script>
</head>
<body> <form name="form1" method="post" action="">
<p><b>TELARAÑAS A DOMICILIO ( PAGINA DE PRUEBA)</b></p>
<p>
<select name="select1" onChange="sumar()">
<option value="0" selected>ALTO cm</option>
<option value="17.21">100</option>
<option value="18.67">110</option>
<option value="20.13">120</option>
<option value="21.59">130</option>
<option value="23.05">140</option>
<option value="24.51">150</option>
<option value="25.97">160</option>

</select>
<select name="select2" onChange="sumar()">
<option selected value="0">ANCHO cm</option>
<option value="12.79">100</option>
<option value="14.05">110</option>
<option value="15.31">120</option>
<option value="16.57">130</option>
<option value="17.83">140</option>
<option value="19.09">150</option>
<option value="20.35">160</option>
</select>
<input type="text" name="textfield" size="20"> <select size="1" name="select3" onchange=impuestos()>
<option selected value="0">IMPUESTOS</option>
<option value="1">IVA EXENTO</option>
<option value="1.07">IMPUESTO IVA 7%</option>
<option value="1.16">IMPUESTO IVA 16%</option>
</select><input type="text" name="T1" size="20"></p>
</form>
</body>
</html> 
Copié el de tu enlace y lo retoqué un poquillo...

Saludos
  #10 (permalink)  
Antiguo 16/02/2004, 18:45
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola

Muchas gracias caricatos!!

Funciona!!

Un saludo.
  #11 (permalink)  
Antiguo 16/02/2004, 18:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284


¡Al fin!...

Saludos
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 20:13.