Foros del Web » Programando para Internet » Javascript »

calcular porcentajes

Estas en el tema de calcular porcentajes en el foro de Javascript en Foros del Web. podrian ver esta pagina ? es sobre los calcular los montos. http://www.panacatours.com/tours_03dias.htm uno escoge el costo y al darle "reservar ahora", te manda a calcular ...
  #1 (permalink)  
Antiguo 14/03/2005, 18:16
 
Fecha de Ingreso: agosto-2003
Ubicación: wilson
Mensajes: 28
Antigüedad: 21 años, 3 meses
Puntos: 1
calcular porcentajes

podrian ver esta pagina ?
es sobre los calcular los montos.

http://www.panacatours.com/tours_03dias.htm

uno escoge el costo y al darle "reservar ahora", te manda a calcular los montos, al finall de la pafina dice calcular monto total, eso debe calcular el 20 y 80 % respectivamente, pero no se por que razon no envia correctamente los numeros, es decir con decimales y todo, y los numeros mayores a 1,000 los corta, el caso es que no trabaja correctamente

podrian ayudarme a resolver esto por favor?
gracias de antemano

les pongo solo el codigo en javascript y el codigo de los campos de reservas. php:



<script language="JavaScript">
curPage=1;
document.oncontextmenu = function(){return false}
if(document.layers) {
window.captureEvents(Event.MOUSEDOWN);
window.onmousedown = function(e){
if(e.target==document)return false;
}
}
else {
document.onmousedown = function(){return false}
}

function Calcular() {

var costo,monto_final,edad_01,edad_02,edad_03,costo_ed ad_02,costo_edad_03

costo=eval(frmPanaca.Costo.value.substring(4,10))
edad_02=eval(frmPanaca.Edad_02.value)
edad_03=eval(frmPanaca.Edad_03.value)

costo_edad_02=(costo*0.6)*edad_02;
costo_edad_03=costo*edad_03;
if (frmPanaca.Viaja_Solo[1].checked){
monto_final=eval(costo) + eval(costo_edad_02) + eval(costo_edad_03);
frmPanaca.Monto_Pagar.value=monto_final;
}
else {
monto_final=eval(costo);
frmPanaca.Monto_Pagar.value=costo;
}

//if //(frmPanaca.Forma_Pago[0].checked){
frmPanaca.Monto_Pagar.value=monto_final;
//frmPanaca.Monto_Pagar6.value=monto_final-(monto_final*0.06);
frmPanaca.Monto_Pagar20.value=0;
frmPanaca.Monto_Pagar80.value=0;

//}
//else {
frmPanaca.Monto_Pagar.value=eval(monto_final);
//frmPanaca.Monto_Pagar6.value=0;
frmPanaca.Monto_Pagar20.value=eval(monto_final)*0. 20;
frmPanaca.Monto_Pagar80.value=eval(monto_final)*0. 80;

}
//}
</script>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META content="Design Systems S.A."
name=keywords><LINK href="images/texto.css" type=text/css
rel=styleSheet>

<style type="text/css">
<!--
.Estilo1 { font-size: 15px;
font-weight: bold;
}
.Estilo2 {font-size: 12px}
.Estilo3 {font-size: 13px}
-->
</style>
</head>

<body background="images/textura.jpg" leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0">

<form name="frmPanaca" action="proceso.php" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><IMG height=43 src="images/contorno.gif" width=44> </td>
</tr>
</table>
<table width="80%" border="0" align="center" cellpadding="5" cellspacing="5">
<tr>
<td height="127" valign="top" class="Texto11Negro" >
<div align="justify">
<table width="100%" border="1" cellpadding="4" cellspacing="0" bordercolor="#FFDFDF" class="Texto11Negro">
<tr>
<td width="24%" bgcolor="#990000"><font color="#ffffff">Tour Seleccionado:</font></td>
<td width="76%"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="Texto11Negro">
<tr>
<td width="47%"><input name="tours" type="text" value="<?php echo $_POST['tours'] ?>" size="25" >
</td>
<td width="15%" bgcolor="#990000"><font color="#ffffff">Costo
: </font></td>
<td width="38%"><input name="Costo" value="<?php echo $_POST['rad'] ?>" ></td>
</tr>
</table></td>
</tr>
<tr>
<td height="25" valign="top" bgcolor="#990000"><font color="#FFFFFF">Viaja
Solo:</font></td>
<td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="21%" valign="top"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="Texto11Negro">
<tr>
<td width="51%"><input name="Viaja_Solo" type="radio" value="SI" checked>
SI</td>
<td width="49%"><input type="radio" name="Viaja_Solo" value="NO">
NO </td>
</tr>
</table></td>
<td width="79%"> <table width="95%" border="1" align="center" cellpadding="3" cellspacing="0" bordercolor="#FFDFDF" class="Texto11Negro">
<tr>
<td bgcolor="#990000"><font color="#FFFFFF">Cantidad
de Acompa&ntilde;antes</font></td>
</tr>
<tr>
<td> <table width="100%" border="1" cellpadding="3" cellspacing="0" bordercolor="#FFDFDF" class="Texto11Negro">
<tr bgcolor="#990000">
<td width="35%"><div align="center"><font color="#FFFFFF">EDAD</font></div></td>
<td width="27%"><div align="center"><font color="#FFFFFF">CANTIDAD</font></div></td>
<td width="38%"><div align="CENTER"><font color="#FFFFFF">INCREMENTO</font></div></td>
</tr>
<tr>
<td><div align="center">0 - 2 </div></td>
<td><div align="center">
<input name="Edad_01" type="text" id="Edad_01" value="0" size="8">
</div></td>
<td><div align="left">0 %</div></td>
</tr>
<tr>
<td><div align="center">3 - 11 </div></td>
<td><div align="center">
<input name="Edad_02" type="text" id="Edad_02" value="0" size="8">
</div></td>
<td><div align="left">60 %</div></td>
</tr>
<tr>
<td><div align="center">12 - a M<strong>&aacute;</strong>s</div></td>
<td><div align="center">
<input name="Edad_03" type="text" id="Edad_03" value="0" size="8">
</div></td>
<td><div align="left">100 %</div></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td valign="top" bgcolor="#990000"><font color="#ffffff">Forma de
Pago:</font></td>
<td> <table width="95%" border="1" align="center" cellpadding="3" cellspacing="0" bordercolor="#FFFFFF" class="Texto11Negro">
<tr bgcolor="#990000">
<td width="78%" height="22"><div align="center"><font color="#FFFFFF" size="4">ABONE
EL 20% Y EL 80% RESTANTE LO ABONA EN EFECTIVO AL LLEGAR
AL PERU</font><font color="#FFFFFF"><BR>
</font></div></td>
</tr>
</table></td>
</tr>
<tr>
<td>&nbsp;</td>
<td> <table width="98%" border="1" align="center" cellpadding="3" cellspacing="0" bordercolor="#FFDFDF" class="Texto11Negro">
<tr>
<td width="33%"> <input type="button" class="Texto11Negro" name="Submit2" value="Calcular Monto Total" onClick="Calcular();"></td>
<td width="21%"> <input name="Monto_Pagar" type="text" id="Monto_Pagar" size="12">
</td>
<td width="46%">TOTAL A PAGAR:
<table width="95%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" class="Texto11Negro">
<tr>
<td width="47%" bgcolor="#990000"><div align="CENTER"><font color="#FFFFFF">20
%</font></div></td>
<td width="53%"><input name="Monto_Pagar20" type="text" size="12"></td>
</tr>
<tr>
<td bgcolor="#990000"><div align="center"><font color="#FFFFFF">80
%</font></div></td>
<td><input name="Monto_Pagar80" type="text" size="12"></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><div align="center">
<input type="submit" name="Submit" value="Enviar" class="Texto11Negro" onclick="return verifica(this.form)">
<input type="reset" class="Texto11Negro" name="Submit3" value="Restablecer">
</div></td>
</tr>
</table>
</div></td>
</tr>
</table>
<p>&nbsp;</p>
</form>
</body>
</html>
__________________

paul
  #2 (permalink)  
Antiguo 17/03/2005, 14:28
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 20 años, 1 mes
Puntos: 3
Hola, paulcf21
No he seguido en detalle el código, pero me parece bastante probable que tu problema esté en la coma de los miles. Para el cálculo necesitas datos numéricos y los que tienes son textos.
Intenta eliminar la moneda y la coma:
primero:
Código:
costo=frmPanaca.Costo.value.substr(4)
(sólo valdrá para los US$, no para los €)
y luego:
Código:
costo=parseFloat(costo.replace(",",""))
A ver qué tal. Luego podemos buscar una solución que sirva para euros también
__________________
Angel :cool:
  #3 (permalink)  
Antiguo 17/03/2005, 14:39
 
Fecha de Ingreso: agosto-2003
Ubicación: wilson
Mensajes: 28
Antigüedad: 21 años, 3 meses
Puntos: 1
gracias por tu respuesta, voy a probar que tal los resultados, gracias otra vez


Atte.
Paul Fernandez
__________________

paul
  #4 (permalink)  
Antiguo 17/03/2005, 14:45
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 20 años, 1 mes
Puntos: 3
Para que sirva tanto con US$ como con €, siempre que haya un espacio entre la moneda y la cifra:
Código PHP:
costo=frmPanaca.Costo.value
costo
=costo.substr(dato.indexOf(" ")) //retira el texto antes del espacio
costo=parseFloat(costo.replace("," "")) //retira la coma y convierte el texto en número 
__________________
Angel :cool:
  #5 (permalink)  
Antiguo 18/03/2005, 16:08
 
Fecha de Ingreso: agosto-2003
Ubicación: wilson
Mensajes: 28
Antigüedad: 21 años, 3 meses
Puntos: 1
gracias ya pude resolver el problema
__________________

paul
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 18:36.