[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