Foros del Web » Programando para Internet » Javascript »

AYUDA con suma de cantidades monetarias

Estas en el tema de AYUDA con suma de cantidades monetarias en el foro de Javascript en Foros del Web. Hola tengo una duda, estoy sumando con selects y me va bien con numero normales, pero al momento de querer sumar numero decimales o numeros ...
  #1 (permalink)  
Antiguo 01/10/2009, 11:36
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta AYUDA con suma de cantidades monetarias

Hola tengo una duda, estoy sumando con selects y me va bien con numero normales, pero al momento de querer sumar numero decimales o numeros que contengan comas y puntos me suma de un mal modo y no me da el resultado correcto, pongo el codigo de un ejemplo..
¿alguien me puede echar la mano con este problema?

Código js:
Ver original
  1. <html><head></head><body>
  2.  
  3. <script language="JavaScript">
  4.  
  5. function Suma1(isChecked, myValue){
  6.     tot = parseInt(document.sumar1.total1.value);
  7.     myValue = parseInt(myValue);
  8.     if (isChecked) document.sumar1.total1.value = tot + myValue;
  9.         else document.sumar1.total1.value = tot - myValue;
  10. }
  11.  
  12. function Suma2(isChecked, myValue){
  13.     tot = parseInt(document.sumar2.total2.value);
  14.     myValue = parseInt(myValue);
  15.     if (isChecked) document.sumar2.total2.value = tot + myValue;
  16.         else document.sumar2.total2.value = tot - myValue;
  17. }
  18.  
  19. </script>
  20.  
  21. <body>
  22. <h1>Aqui esta todo bien</h1>
  23. <form name="sumar1" method="POST">
  24.  
  25.     <p><input type="checkbox" value="63" name="Check1" onClick="Suma1(this.checked,this.value)" >$63</p>
  26.     <p><input type="checkbox" value="50" name="Check2" onClick="Suma1(this.checked,this.value)" >$50</p>
  27.     <p><input type="checkbox" value="1252" name="Check3" onClick="Suma1(this.checked,this.value)" >$1252</p>
  28.     <p><b><font color="#999999">$</font></b> <input id="pago" class="resultado" type="text" name="total1" value="0" disabled></p>
  29.  
  30. </form>
  31. <h1>Aqui no funciona tan bien</h1>
  32. <form name="sumar2" method="POST">
  33.  
  34.     <p><input type="checkbox" value="63.50" name="Check1" onClick="Suma2(this.checked,this.value)" >$63.50</p>
  35.     <p><input type="checkbox" value="50.00" name="Check2" onClick="Suma2(this.checked,this.value)" >$50.00</p>
  36.     <p><input type="checkbox" value="1,252.00" name="Check3" onClick="Suma2(this.checked,this.value)" >$1,252.00</p>
  37.     <p><b><font color="#999999">$</font></b> <input id="pago" class="resultado" type="text" name="total2" value="0" disabled></p>
  38.  
  39. </form>
  40.  
  41. </body></html>
  #2 (permalink)  
Antiguo 01/10/2009, 13:10
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: AYUDA con suma de cantidades monetarias

Hola

¿Has probado con la función parseFloat?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 01/10/2009, 13:24
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: AYUDA con suma de cantidades monetarias

Hola Adler, gracias por la respuesta, no lo eh intentado no conocia la funcion ¿pero como la uso? y eh estado viendo que si uso un coma me aparece NaN, ¿como corrijo eso?

Saludos!
  #4 (permalink)  
Antiguo 01/10/2009, 13:30
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: AYUDA con suma de cantidades monetarias

Hola

Prueba así

Código javascript:
Ver original
  1. <html><head></head><body>
  2.  
  3.  
  4. <script language="JavaScript">
  5.  
  6.  
  7. function Suma1(isChecked, myValue){
  8.  
  9.     tot = parseInt(document.sumar1.total1.value);
  10.  
  11.     myValue =parseInt(myValue);
  12.  
  13.     if (isChecked) document.sumar1.total1.value = parseFloat(tot) + parseFloat(myValue);
  14.  
  15.         else document.sumar1.total1.value = parseFloat(tot) - parseFloat(myValue);
  16.  
  17. }
  18.  
  19.  
  20. function Suma2(isChecked, myValue){
  21.  
  22.     tot =document.sumar2.total2.value;
  23.  
  24.     myValue =myValue;
  25.  
  26.     if (isChecked) document.sumar2.total2.value = parseFloat(tot) + parseFloat(myValue);
  27.  
  28.         else document.sumar2.total2.value = parseFloat(tot) - parseFloat(myValue);
  29.  
  30. }
  31.  
  32.  
  33. </script>
  34.  
  35.  
  36. <body>
  37.  
  38. <h1>Aqui esta todo bien</h1>
  39.  
  40. <form name="sumar1" method="POST">
  41.  
  42.  
  43.     <p><input type="checkbox" value="63" name="Check1" onClick="Suma1(this.checked,this.value)" >$63</p>
  44.  
  45.     <p><input type="checkbox" value="50" name="Check2" onClick="Suma1(this.checked,this.value)" >$50</p>
  46.  
  47.     <p><input type="checkbox" value="1252" name="Check3" onClick="Suma1(this.checked,this.value)" >$1252</p>
  48.  
  49.     <p><b><font color="#999999">$</font></b> <input id="pago" class="resultado" type="text" name="total1" value="0" disabled></p>
  50.  
  51.  
  52. </form>
  53.  
  54. <h1>Aqui no funciona tan bien</h1>
  55.  
  56. <form name="sumar2" method="POST">
  57.  
  58.  
  59.     <p><input type="checkbox" value="63.50" name="Check1" onClick="Suma2(this.checked,this.value)" >$63.50</p>
  60.  
  61.     <p><input type="checkbox" value="50.00" name="Check2" onClick="Suma2(this.checked,this.value)" >$50.00</p>
  62.  
  63.     <p><input type="checkbox" value="1,252.00" name="Check3" onClick="Suma2(this.checked,this.value)" >$1,252.00</p>
  64.  
  65.     <p><b><font color="#999999">$</font></b> <input id="pago" class="resultado" type="text" name="total2" value="0" disabled></p>
  66.  
  67.  
  68. </form>
  69. </body></html>

En cuanto a la coma, te refieres a 1,252.00. Si lo que quieres es que esa cantidad sea
mil doscientos cincuenta y dos -----> 1252.00
uno coma doscientos cincuenta y dos -----> 1.252

¿Responde eso a tu pregunta?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 01/10/2009, 13:36
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: AYUDA con suma de cantidades monetarias

aja! uno coma doscientos cincuenta y dos ¿hay forma de que sea asi?

gracias por la ayuda
  #6 (permalink)  
Antiguo 01/10/2009, 13:39
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: AYUDA con suma de cantidades monetarias

Código HTML:
function Suma2(isChecked, myValue){
	myValue=myValue.replace(",","");
	var total=0;
    tot = parseFloat(document.sumar2.total2.value);
    myValue = parseFloat(myValue);

    if (isChecked)
		total = tot + myValue;
	else
		total = tot - myValue;
	document.sumar2.total2.value = total.toFixed(2);
}
  #7 (permalink)  
Antiguo 01/10/2009, 13:47
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: AYUDA con suma de cantidades monetarias

Hola xempro me funciono bien tu funcion, gracias, supongo que al momento de descomponer el formato para sumarlo ya no hay forma de verlo a imprimir en ese formato osea: 1,252.00 + 63.50 = 1,315.50 (en vez de 1315.50)

aun que ahora me surgio la duda de aparte de hacer esas sumas sumar el valor digitado a un input text con uno de esos check box con valor ya asignado previamente.
  #8 (permalink)  
Antiguo 01/10/2009, 14:07
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: AYUDA con suma de cantidades monetarias

¿Es esto a lo que te refieres?

Código javascript:
Ver original
  1. <html><head></head><body>
  2.  
  3.  
  4. <script language="JavaScript">
  5. function Suma2(isChecked, myValue){
  6.  
  7.    
  8.  
  9.     myValue =myValue;
  10.  
  11.     if (isChecked) document.sumar2.total2.value = parseFloat(myValue) + parseFloat(document.sumar2.Text1.value);
  12.  
  13.         else document.sumar2.total2.value = parseFloat(myValue) - parseFloat(document.sumar2.Text1.value);
  14.  
  15. }
  16.  
  17.  
  18. </script>
  19.  
  20.  
  21. <body>
  22.  
  23.  
  24.  
  25. <form name="sumar2" method="POST">
  26. <p><input type="text" value="0" name="Text1" /></p>
  27.  
  28.     <p><input type="checkbox" value="63.50" name="Check1" onClick="Suma2(this.checked,this.value)" >$63.50</p>
  29.  
  30.     <p><input type="checkbox" value="50.00" name="Check2" onClick="Suma2(this.checked,this.value)" >$50.00</p>
  31.  
  32.     <p><input type="checkbox" value="1,252.00" name="Check3" onClick="Suma2(this.checked,this.value)" >$1,252.00</p>
  33.  
  34.     <p><b><font color="#999999">$</font></b> <input id="pago" class="resultado" type="text" name="total2" value="0" disabled></p>
  35.  
  36.  
  37. </form>
  38. </body></html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 13:32.