Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado 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.
-
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.
-
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
-
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!!!
-
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.
-
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
-
Encontre este blog que quiza te pueda interesar.
http://www.itsasontzibaten.net/?p=94 (http://www.itsasontzibaten.net/?p=94)
-
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..
Private Sub Form_Load()
MsgBox G_Redondeo(2.8754215, 3)
MsgBox Round(2.8754215, 3)
End Sub
Ambos me arrojan 2.875
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
-
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