border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 05-11-2008, 19:10:23
Un Nuevo Amigo
 
Registrado: nov 2008
Posts: 2
Retael Aun no valorado
Question porcentajes en VB 6.0

Hola, les expongo el siguiente problema que tengo al trabajar con porcentajes en VB 6.0

Tengo un Ingreso en el mes de enero que es igual a $ 43.543 y al llevarlo a porcentaje sucede lo siguiente.

Mes enero = $43.543
Precio1 = ($43.543 /100) * 45 = $19.594
Precio2 = ($43.543 /100) * 10 = $4.354
Precio3 = ($43.543 /100) * 45 = $19.594

se descompone el mes (43.543) en 3 precios distintos con sus respectivos valores hasta formar el 100 % (45 + 10 + 45) y segun los precios resultantes 19.594 + 4.354 + 19.594 da como resultado 43.542 y en mi caso necesito que la suma sea igual al valor del mes o sea 43.543, siendo el problema la exactitud de la cifra.

Alguien me puede dar una pista de como soluciono esto?.

Adicionalmente el codigo lo tengo estructurado asi y con algunas funciones que hice, pero no funciona. Intente con round, variables tipo long, double y nada funciona.

Por = CDbl(FlexPreCC1.TextMatrix(fila, col))
PreTmp = CLng(FlexPreCC.TextMatrix(fila - 1, 2)))
Pre = Round((PreTmp / 100) * Por, 4)
Recor!precio_cc = Pre
Imágenes Adjuntas
Tipo de Archivo: jpg porcentaje.JPG (22,6 KB, 3 visitas)
Responder Con Cita
  #2 (permalink)  
Antiguo 05-11-2008, 19:33:02
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.307
acalanto ha deshabilitado la reputación
Predeterminado Re: porcentajes en VB 6.0

Para no encontrarte en ese problema yo ´calcularía los porcentajes desde 1 hasta n-1 y el porcentaje n sería la diferencia entre el total y los porcentajes calculados.

P. Ejemplo

Total es 43.543

Precio1 = round(($43.543 /100) * 45,3)
Precio2 = round(($43.543 /100) * 10)
Precio3 = 43.543 - (precio1+precio2)

Es infalible.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 05-11-2008, 19:44:04
Un Nuevo Amigo
 
Registrado: nov 2008
Posts: 2
Retael Aun no valorado
Predeterminado Re: porcentajes en VB 6.0

Buen punto, no lo habia visto desde esa perspectiva, mientra utilizare esta ayuda para hacer valer el total a la fuerza practicamente con este truco para dar el valor exacto. De todas maneras me inquieta saber si existe la forma de trabajar con los porcentajes y con las variables aecuadas para que no de un valor errado como me sucede. Digo esto sin tener que forzar el resultado.

Gracias por la respuesta.

Regards.

Atte.

retael
Responder Con Cita
  #4 (permalink)  
Antiguo 05-11-2008, 21:50:53
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.307
acalanto ha deshabilitado la reputación
Predeterminado Re: porcentajes en VB 6.0

Sinceramente, a mi tampoco me gusta que 2+3 den como resultado 6...pero es lo que hay.

Has de tener en cuenta la diferencia de cálculo con la representación y en el ámbito del cálculo numeríco muchas veces se debe rechazar aquello de 'A la parálisis por el análisis' e ir a cosas efectivas.

si sumas 'n' nu´meros reales con una precisión decimal alta, pero vas redondeando los valores, el resultado final será inexacto...casi siempre.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT. Ahora son las 01:30:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right