Foros del Web » Programando para Internet » ASP Clásico »

Problemas con filtros

Estas en el tema de Problemas con filtros en el foro de ASP Clásico en Foros del Web. Hola que tal a todos. Les cuento que mi problema es el siguiente, no se cual es el problema. ES una máquina expendedora de boletos, ...
  #1 (permalink)  
Antiguo 11/12/2005, 13:04
 
Fecha de Ingreso: noviembre-2005
Mensajes: 20
Antigüedad: 18 años, 6 meses
Puntos: 0
Problemas con filtros

Hola que tal a todos. Les cuento que mi problema es el siguiente, no se cual es el problema. ES una máquina expendedora de boletos, como las de los colectivos, pero cuando me tiene que dar, por ejemplo, 0,35 centavos, me da 0,30, es decir, se queda con 0,05.No puedo descifrar por que, les agradecería su pronta colaboración.
Aca les les mando el código.viene de un formulario donde se ingresaron las monedas.
Saludos.
<%
valbol=request.form("valbol")
cantbol=request.Form("cantbol")
mon1=request.Form("mon1")
mon2=request.Form("mon2")
mon3=request.Form("mon3")
mon4=request.Form("mon4")
mon5=request.Form("mon5")

if len(valbol) > 0 then
if isnumeric(valbol) = false then
response.write("Ingresó un valor que no es número en el valor del boleto"&valbol&"<br>")
end if
else
response.write("No ingresó el valor del boleto"&c&"<br>")
end if

if len(cantbol) > 0 then
if isnumeric(cantbol) = false then
response.write("Ingresó un valor que no es número en la cantidad de boletos"&c&"<br>")
end if
else
response.write("No ingresó la cantidad de boletos"&c&"<br>")
end if

total1=0
if valbol=0.75 or valbol=0.80 or valbol=0.95 or valbol=1 or valbol=1.25 then
total1=valbol*cantbol
response.write("Boleto a pagar: "&total1&"<br>")
else
response.write("No ha ingresado un valor válido como boleto<br>")
end if

suma=0
for c= 1 to 5
monedita="mon"&c
if len(request.form(monedita)) > 0 then
if isnumeric(request.form(monedita)) = false then
response.write("No ingresó un número en la Moneda " & c & "<br>")
end if
if request.form(monedita)=0.05 or request.form(monedita)=0.10 or request.form(monedita)=0.25 or request.Form(monedita)=0.50 or request.Form(monedita)=1 then
suma=suma--request.Form(monedita)
else
response.write("No ha ingresado un valor válido como moneda en la moneda "&c&"<br>")
end if
else
response.Write("")
end if
next
response.write("Total pagado: "& suma & "<br>")

vuelto=0
if suma > total1 then
vuelto=suma-total1
vuelto=round(vuelto,2)
response.write("<strong>Su vuelto total es: </strong>"& vuelto&"<br><strong>en monedas de: </strong> <br>")
else
response.write("Faltan ingresar monedas<br>")
end if

do until (vuelto-0.0001)=0
if vuelto >= 1 then
response.write("$1<br>")
vuelto=vuelto-1
elseif vuelto >= 0.50 then
response.write("$0,50<br>")
vuelto=vuelto-0.50
elseif vuelto >= 0.25 then
response.write("$0,25<br>")
vuelto=vuelto-0.25
elseif vuelto>=0.10 then
response.write("$0,10<br>")
vuelto=vuelto-0.10
elseif vuelto=>0.05 then
response.write("$0,05<br>")
vuelto=vuelto-0.05
else
vuelto=0
exit do
end if

loop
%>
  #2 (permalink)  
Antiguo 12/12/2005, 08:01
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años, 1 mes
Puntos: 4
Porque no pruebas conviertiendo tus valores a tipo moneda usando la función ccur().
  #3 (permalink)  
Antiguo 12/12/2005, 10:14
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 18 años, 9 meses
Puntos: 0
Simplemente utiliza la funcion round, para redondear los decimales.
  #4 (permalink)  
Antiguo 12/12/2005, 20:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 20
Antigüedad: 18 años, 6 meses
Puntos: 0
Y donde me recomiendan ubicarlo???
GRacias
  #5 (permalink)  
Antiguo 13/12/2005, 10:40
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 18 años, 9 meses
Puntos: 0
Debes unicarlo en tu valor a redondear, claro esta.

Valor=round(valor,2)

En este caso la variable valor contiene un numero con decimales, y hacemos que lo redondee con 2 decimales.
  #6 (permalink)  
Antiguo 24/12/2005, 11:09
 
Fecha de Ingreso: noviembre-2005
Mensajes: 20
Antigüedad: 18 años, 6 meses
Puntos: 0
Hola, hago eso qeu me decis, pero no me funciona...
no se que hacer, probé todo y no me sale
  #7 (permalink)  
Antiguo 25/12/2005, 13:02
 
Fecha de Ingreso: noviembre-2005
Mensajes: 20
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo

GRacias, logré que me devuelva los 0.05 centavos aplicando el ccur, pero ahora no se porque no me funciona la validación, alguien me podría ayudar a ver que es lo que aplico mal en el len y en el isnumeric???
GRacias a todos.
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 01:56.