[firebase-br] dilema de valor de horas/arredondamento

Anderson - EasyBit anderson em easybit.com.br
Seg Jul 30 08:21:35 -03 2007


Ana,

Se o problema eh o cliente achar que esta sendo 
cobrado a mais, parece-me que a melhor solução eh 
arrendondar pra baixo (no seu exemplo, utilizar 
96,97). Ao invés de usar a a soma, utilizar o 
total de horas/minutos para o cálculo.

Dividindo 2/60, para saber o valor por minuto, 
você obtera 0,03333333.... ou seja, uma dizima 
períodica. Agora, se você pegar 0,033333333 e 
multiplicar por 60, terá  algo como 1,99999998. 
Essa diferença deve-se 'a dizima acima.

Agora, se tiver que apresentar os dois resultados 
(total e individual), você faz os dois cálculos, 
tira a diferença entre os mesmos e rateia esta 
diferença proporcionalmente aos resultados 
individuais de forma que a soma "bata". No seu exemplo, ficaria assim:

(A) Total calculado por horas = 96,97
(B)  Total da soma calculada item a item =  97,00

diferença (A) - (B) = - 0,03

Esses - 0,03 você  rateia proporcionalmente entre 
os resultados individuais de forma que o total 
geral bata ou aproxime-se o máximo possível de 
96,97.  Não dá pra fazer com comandos SQL (ou 
fica bem mais complicado), pelo delphi fica mais fácil.


Abraço,

Anderson - EasyBit


At 16:42 29/7/2007, Ana Virginia da Silva wrote:
>
>
>Imaginem a seguinte situação
>
>
>
>Horas:        Total:
>
>
>
>25h0min........50,00
>
>1h37min.........3,23         (onde 37 * 2 / 60 = 2,00 (valor hora) + 1,23
>(=37min da hora)...usa-se regra de 3
>
>20h41min.......41,37
>
>0h42min.........1,40
>
>0h30min.........1,00
>
>
>
>TOTAL DE HORAS : 48h29min   (fator = 48,4833)
>
>
>
>TOTAL EM REAIS isolado na soma = 97,00
>
>
>
>Agora se fizermos o valor de 48h29min = 96,97
>
>
>
>To vendo um dilema nisto...como farei pra bater,
>
>pois tem situação que o cliente utilizará o mesmo
>
>valor hora para cada situação e valores diferentes
>
>para outra (nao podendo assim multiplicar pelo final),
>
>porém nos casos que for igual, irá existir esta diferença dando
>
>a impressão que o prestador está cobrando a mais...
>
>alguém tem alguma dica???
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o 
>endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista