Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Junio 16, 2011, 04:07:24 pm

Título: Que metodo usar para redondeo
Publicado por: E N T E R en Junio 16, 2011, 04:07:24 pm
Bueno mi pregunta es que método usan para redondear un monto. Por ejemplo un cliente hizo un prestamo de 1.000.000 (un millon) le cobro 10% de interes y quiere pagarlos en 7 cuotas. entonces el total que tiene que pagar es 1.100.000

La cuota seria entonces de: 157.142 mensuales pero que pasa aca al multiplicar la cuota por 7 no sale exacto sale 1.099.994 faltan 6 puntos. Entonces que hacer en esos caso.
Título: Re:Que metodo usar para redondeo
Publicado por: YAcosta en Junio 16, 2011, 07:09:40 pm
Este siempre ha sido un tema picante. Si vendes 3 unidades a 10 USD y las registras por unidad el precio se graba con 3.3333 y al volver a levantar el documento tienes 9.99999 que no es 10. Lo unico que yo hago es formatear la salida a dos decimales y ya. Es decir, en la BD lo grabo con todos sus asquerosos decimales pero el resultado final lo formateo.
Título: Re:Que metodo usar para redondeo
Publicado por: E N T E R en Junio 16, 2011, 07:32:19 pm
Y el ajuste de redondeo como podemos implementar por ejemplo. aca nuestra electricidad se cobra asi

energía activa             = 111.648
alumbrado                  = 5.126
importe del redondeo = 67
recargo por mora        = 4609
iva 10%                      = 11.677
iva 5%                        = 230
cr. ajuste redondeo    = -357
-----------------------------------------------
Total a pagar entonces 133.000

Entonces lo que hace es redondeo exacto a 133.000
Título: Re:Que metodo usar para redondeo
Publicado por: YAcosta en Junio 17, 2011, 12:31:20 am
Si doc, eso es otro tema, tu podrias crear una cuenta en tu tabla donde vayan esas diferencias, y crear un algoritmo que
te aplique la diferencia al entero inmediato superior.
Eje: 199.95
Redondeo = 0.05
Pagar  200.00

Eso tambien es valido, pero es mas chamba!!!
Título: Re:Que metodo usar para redondeo
Publicado por: fx700 en Junio 19, 2011, 09:40:47 pm
Siguiendo tu ejemplo c/cuota seria
157142.85714285714285714285714286
redondeado
157142.86 x 7= 1100000.02

Mas vale que sobre y no que falte, al final las empresas que venden no pueden perder ningun centimo sino mira los voucher de supermecados.
Título: Re:Que metodo usar para redondeo
Publicado por: YAcosta en Junio 20, 2011, 12:35:41 am
En los supermercados esta de moda darte la opción de que uno done esa fracción a alguna entidad benéfica. Es allí que todos esas diferencia se van a un tabla que luego se delegan a esa entidad, es mas facil asi, pero como vemos es una solución funcional y no matemática (alguna formula que nos de el numero "exacto")

No estarían perdiendo ni ganando, es decir, ese valor al final del ejercicio debe ajustarse.
Por ejemplo, al final tienes en caja 11,000 y no 11,000.02 que indica el sistema, lo que habría que hacer es un ajuste de diferencia (o como lo llamen los contadores)
donde asignas una cuenta los 0.02
Título: Re:Que metodo usar para redondeo
Publicado por: YAcosta en Junio 29, 2011, 03:05:04 am
Encontre este blog que quiza te pueda interesar.

http://www.itsasontzibaten.net/?p=94 (http://www.itsasontzibaten.net/?p=94)
Título: Re:Que metodo usar para redondeo
Publicado por: ssccaann43 en Junio 29, 2011, 11:33:07 am
Encontre este blog que quiza te pueda interesar.

http://www.itsasontzibaten.net/?p=94 (http://www.itsasontzibaten.net/?p=94)

Yvan, estuve probando lo que aparece en el blog y no se si hago algo mal, pero los resultados son los mismos..

Código: [Seleccionar]
Private Sub Form_Load()
MsgBox G_Redondeo(2.8754215, 3)
MsgBox Round(2.8754215, 3)
End Sub

Ambos me arrojan 2.875

Código: [Seleccionar]
Private Sub Form_Load()
MsgBox G_Redondeo(2.8754215, 2)
MsgBox Round(2.8754215, 2)
End Sub

Y con este, 2.88

Es decir, quedo igual...! =S
Título: Re:Que metodo usar para redondeo
Publicado por: YAcosta en Junio 29, 2011, 03:23:51 pm
No lo probe, creo que el codigo sirve para definir cuando el decimal termina en 5. La verdad solo lo lei y no lo probe, asumi que estaba bien, voy a checarlo